我試圖將UTF8字符串轉換爲拉丁字符。將UTF8字符串解碼爲拉丁文
這裏是我如何努力實現這樣的例子:
string sUnicode ="Peneda-Gerês";
string result = Encoding.Unicode.GetString(Encoding.Convert(Encoding.UTF8, Encoding.Unicode, Encoding.UTF8.GetBytes(sUnicode)));
MessageBox.Show(result);
的字符串返回的是一樣的嗎?不用找了?
我在想什麼?
如果我去這個網站
http://software.hixie.ch/utilities/cgi/unicode-decoder/utf8-decoder
,並把相同的文本,它得到正確解碼爲「Peneda-GERES」;
你是將UTF-8轉換爲UTF-8。爲什麼會顯示不同的字符串? – Oded 2011-02-26 21:47:53
我寧願將數據放在文本文件中,而不是放在源代碼中。但是,這看起來像是一個破損的UTF-8(它被「編碼」爲UTF-8「兩次」),因此它是一個破碎的字節序列,並不是很適合放在C#字符串中。爲什麼不使用外部工具來修復破損的文本? – 2011-02-26 22:00:15
.NET字符串始終以Unicode(UTF-16)編碼,因此您的原始字符串不是UTF-8 ...如果您正在讀取或寫入流(或者如果將字符串轉換爲字符串來自/從一個字節數組) – 2011-02-26 22:02:19