我有一个字符串,我从第三方应用程序收到,我想显示它在任何语言使用 C # 在我的 Windows 平台上正确。
由于编码不正确,我的一段字符串在西班牙语中是这样的:
(意大利语)
而它应该是这样的:
行动
根据这个问题的答案: 如何知道 C # 中的字符串编码,我接收到的编码应该已经在 UTF-8上了,但是它是在 Encoding 上读取的。默认值(可能是 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);
你们还有什么别的办法可以让我试试吗?