0

我想将 utf-8(或 unicode)文本解码为普通字符串。

例如,我想将 "\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”(unicode'code',而不是'字符') 到一个可读的字符串,例如,“가나다라”。或者中文什么的。

而且,我需要 .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

我想我终于明白问题所在了。类似的字符串与C# 中"\uc778\uc0b0"的字符串完全相同(它是 UTF-16,而不是 UTF-8)。但是 VB.NET 不理解这样的转义序列。"인산"

我认为这里最好的选择是直接编写 Koren 字符,比如"인산"有效的 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 回答
1

你不需要做任何事情来转换它。

文字是中文字符(或类似的亚洲字符)

我猜只是输出它。为我工作。

我只是Console.WriteLine()从 linqpad 做了一个。

每个 \uXXXX 都是特定字符的 unicode 值。

于 2013-02-17T10:42:51.040 回答