我有一个字符串,我从第三方应用程序收到,我想在我的Windows Surface上使用C#以任何语言正确显示它.
由于编码不正确,我的字符串在西班牙语中看起来像这样:
Acción
而它应该是这样的:
行动组织
根据这个问题的答案: 如何知道C#中的字符串编码,我收到的编码应该是UTF-8,但它是在Encoding.Default(可能是ANSI?)上读取的.
我试图将这个字符串转换成真正的UTF-8,但其中一个问题是我只能看到Encoding类的一个子集(仅限UTF8和Unicode属性),可能是因为我只限于windows表面API.
我已经尝试了一些我在互联网上找到的片段,但到目前为止,东方语言(即韩语)都没有成功.一个例子如下:
var utf8 = Encoding.UTF8;
byte[] utfBytes = utf8.GetBytes(myString);
myString= utf8.GetString(utfBytes, 0, utfBytes.Length);
Run Code Online (Sandbox Code Playgroud)
我也尝试将字符串解压缩为字节数组,然后使用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);
Run Code Online (Sandbox Code Playgroud)
你们有其他想法我可以试试吗?
我从第三方程序中获取了一个我无法控制的字符串.我的代码片段以HTML格式输出.这在英语中很好用,但在其他语言中它会以有趣的方式显示.例如,西班牙语的口音看起来很有趣,东方语言(即韩语)中的人物看起来很有趣.我很确定我需要做一些编码工作,以便所有语言都能正确显示.
我对编码的理解有点差,所以在发布真正的问题之前,我直观地认为:"如何在C#中将其编码为UTF-8",我希望通过更简单的方式对此事进行更多的了解.的问题.
我的问题是:我如何知道输入字符串的编码类型?在西班牙语中,当我得到一个口音时,它看起来像这样:"Acción",而不是"Acción".这是ANSI还是我在处理什么?
非常感谢提前!