我试图将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