我想将utf-8(或unicode)文本解码为普通字符串。
例如,我想转换" \ uc778 \ uc0b0 \ uc544 \ uc5f0 \ uc2dc \ uba58 \ ud2b8,\ uce58 \ uba74 \ uc5f4 \ uad6c \ uc804 \ uc0c9 \ uc81c"一种字符串到可读文本。
我在使用system.text.utf8编码text.encoding.utf8.getstring()时遇到了困难,但它无法正常工作......
我该如何解决这个问题?似乎解决方案很简单...... 如果可能的话,如果你在VB.Net中编写代码就会很棒。
感谢您的建议!
感谢您的回复。
我认为我没有清楚地写下我的观点。
问题是我想要转换" \ uc885 \ uc550 \ uc9c4 \ ub8cc \ uc2e4 \ uacac \ ud559 \ \ uce58 \ uacfc \ uc758 \ uc0ac \ uc724 \ ub9ac \ ud1a0 \ ub860" (unicode'代码',而不是' chracter')到一个可读的字符串,例如"가나다라"。或中文或其他。
并且,我需要.NET代码才能做到这一点。
尝试了
theString = Convert.toString("\uc885\ud569");
尝试了
Dim utf8Encoding As New System.Text.UTF8Encoding
Dim encodedString() As Byte
encodedString = utf8Encoding.GetBytes(encodedString) .....
还有一些,但没有任何转换" \ uc885 \ ud569"到"가나"。 (这就是一个例子。我知道每个' \ u ????'代码匹配一个字符,对于ex'가')
谢谢!
答案 0 :(得分:1)
您无需做任何事情来转换它。
文字是中文字符(或类似的亚洲字符)
我猜是输出它。为我工作。
我只是从linqpad做了Console.WriteLine()
。
每个\ uXXXX都是特定字符的unicode值。
答案 1 :(得分:1)
我想我终于明白了问题所在。类似"\uc778\uc0b0"
的字符串与C#中的"인산"
完全相同(并且它是UTF-16,而不是UTF-8)。但VB.NET不理解这种转义序列。
我认为这里最好的选择是直接编写Koren字符,类似"인산"
的是有效的VB.NET代码。
如果你真的需要使用类似C#的转义序列,you can use Regex.Unescape()
:
Dim escaped = "\uc778\uc0b0\uc544\uc5f0\uc2dc\uba58\ud2b8, \uce58\uba74\uc5f4\uad6c\uc804\uc0c9\uc81c"
Dim unescaped = Regex.Unescape(escaped)