我有一个字符串,我收到一个第三方应用程序,我想要正确地显示在任何语言使用我的Windows Surface上的C#它。
由于编码错误,我的一段字符串在西班牙语中如下所示:
访问权限n
然而,它应该看起来像这样:
Acci
根据这个问题的答案:How to know string encoding in C#,我收到的编码应该已经在UTF-8上了,但它是在Encoding.Default上读取的(可能是ANSI?)。
我试图将这个字符串转换为真正的UTF-8,但其中一个问题是我只能看到Encoding类的一个子集(仅限UTF8和Unicode属性),这可能是因为我受限于windows surface API。
我已经尝试了一些我在互联网上找到的代码片段,但到目前为止,它们还没有成功用于东方语言(即韩语)。下面是一个例子:
var utf8 = Encoding.UTF8;
byte[] utfBytes = utf8.GetBytes(myString);
myString= utf8.GetString(utfBytes, 0, utfBytes.Length);
我还尝试将字符串提取到一个字节数组中,然后使用UTF8.GetString:
byte[] myByteArray = new byte[myString.Length];
for (int ix = 0; ix < myString.Length; ++ix)
{
char ch = myString[ix];
myByteArray[ix] = (byte) ch;
}
myString = Encoding.UTF8.GetString(myByteArray, 0, myString.Length);
你们还有没有其他想法可以让我试试?
https://stackoverflow.com/questions/14057434
复制相似问题