我有一个从第三方应用程序收到的字符串,我想在我的 Windows Surface 上使用 C# 以任何语言正确显示它。
由于编码不正确,我的一段字符串在西班牙语中如下所示:
雅兴
而它应该是这样的:
行动
根据这个问题的答案: 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);
你们还有其他想法我可以尝试吗?