0

utf-8(またはユニコード)テキストを通常の文字列にデコードしたい。

たとえば、「\ uc778 \ uc0b0 \ uc544 \ uc5f0 \ uc2dc \ uba58 \ ud2b8、\ uce58 \ uba74 \ uc5f4 \ uad6c \ uc804 \ uc0c9\uc81c」のような文字列を読み取り可能なテキストに変換したいとします。

system.text.utf8encoding text.encoding.utf8.getstring()で苦労しましたが、機能していません...

どうすれば問題を解決できますか?解決策は簡単なようです...可能であれば、VB.Netでコードを記述してください。

アドバイスありがとうございます!


返信ありがとうございます。

私は自分の主張を明確に書いていなかったと思います。

問題は、「\ uc885 \ ud569 \ uc9c4 \ ub8cc \ uc2e4 \ uacac \ ud559 / \ uce58 \ uacfc \ uc758 \ uc0ac \ uc724 \ ub9ac \ ud1a0 \ ub860」(「chracter」ではなく「unicode」コード」に変換したいということです。 ')読み取り可能な文字列、たとえば「가나다라」に変換します。または中国語か何か。

そして、それを行うには.NETコードが必要です。

試した

theString = Convert.toString("\uc885\ud569");

試した

Dim utf8Encoding As New System.Text.UTF8Encoding
Dim encodedString() As Byte
encodedString = utf8Encoding.GetBytes(encodedString) .....

さらにいくつかありますが、「\ uc885\ud569」を「가나」に変換するものはありません。(これは例です。各'\ u ????'コードは単一の文字と一致します(例:'가'))

ありがとうございました!

4

2 に答える 2

1

変換するために何もする必要はありません。

テキストは漢字(または同様のアジア文字)です

単にそれを出力すると思います。私のために働いた。

私は単にConsole.WriteLine()linqpadからを実行しました。

各\uXXXXは、特定の文字のUnicode値です。

于 2013-02-17T10:42:51.040 に答える
1

私はついに問題が何であるかを理解したと思います。のような文字列は、C#"\uc778\uc0b0"の場合とまったく同じです(UTF-8ではなくUTF-16です)。しかし、VB.NETはそのようなエスケープシーケンスを理解していません。"인산"

ここでの最良のオプションは、コーレン文字を直接記述することだと思います。たとえば、"인산"有効なVB.NETコードです。

本当にC#のようなエスケープシーケンスを使用する必要がある場合は、次を使用できますRegex.Unescape()

Dim escaped = "\uc778\uc0b0\uc544\uc5f0\uc2dc\uba58\ud2b8, \uce58\uba74\uc5f4\uad6c\uc804\uc0c9\uc81c"
Dim unescaped = Regex.Unescape(escaped)
于 2013-02-17T13:53:48.973 に答える