2013-02-17 54 views
0

我想將utf-8(或unicode)文本解碼爲普通字符串。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」(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 ????'代碼匹配單個字符,例如'가')

謝謝!

+1

你是什麼意思,它不工作?代碼是做什麼的?你真的可以向我們展示你的代碼嗎? – svick 2013-02-17 10:44:08

+0

此外,[標籤不屬於問題標題](http://meta.stackexchange.com/q/19190/130186)。 – svick 2013-02-17 10:54:36

+0

我再次寫了我的問題。你能給我更多的幫助嗎? @svick – klados 2013-02-17 11:36:32

回答

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) 
+0

是的!這正是我想要的。謝謝! – klados 2013-02-22 14:57:35

1

你不必做任何事情來轉換它。

文本是在中國的字符(或類似的亞洲字符)

只需輸出它,我想。爲我工作。

我只是從linqpad做了一個Console.WriteLine()

\ uXXXX中的每一個都是特定字符的unicode值。

+0

其實,它似乎是[韓國](http://en.wikipedia.org/wiki/Hangul)。 – svick 2013-02-17 10:46:44

+0

謝謝,但我想把字符變成一個變量。但控制檯。命令不支持該功能。有沒有其他的代碼來轉換它?謝謝! @svick – klados 2013-02-17 10:49:24

+0

@klados這很可能是因爲您的控制檯字體不支持這些字符。 – svick 2013-02-17 10:56:05