C# Umlaute编码错误!
我取回一条小溪。 除了Umlaute(ä,ö,ü,ß)的编码之外,一切都很好 什么是 NäääÖ徖sas so viele Umlaute 变成 NÃüôsas so viele Umlaute 我尝试了Ascii编码和其他一些编码,如下面的源代码所示C# Umlaute编码错误!,c#,.net,encoding,C#,.net,Encoding,我取回一条小溪。 除了Umlaute(ä,ö,ü,ß)的编码之外,一切都很好 什么是 NäääÖ徖sas so viele Umlaute 变成 NÃüôsas so viele Umlaute 我尝试了Ascii编码和其他一些编码,如下面的源代码所示 ASCIIEncoding encoder = new ASCIIEncoding(); Encoding enc = Encoding.GetEncoding(28591); string response = enc.GetString
ASCIIEncoding encoder = new ASCIIEncoding();
Encoding enc = Encoding.GetEncoding(28591);
string response = enc.GetString(message, 0, bytesRead);
哪一个能解决我的问题?以下字符都不是ASCII码 您应该使用与它们相同的编码(可能是UTF-8):
您使用的代码页(28591)是iso-8859-1,其中包括这些字符,但它们可能编码为UTF-8(或另一个unicode变体),而不是iso-8859-1。您需要使用正确的编码才能获得正确的编码字符。我对.NET一无所知,但我知道以下模式:
是UTF-8被误解为ISO-8859-1的特征。因此,请尝试将输入处理为UTF-8。如果需要8位编码,请使用支持德语字符的ISO-8859-2(或拉丁语2)。或者,如果可以的话,使用一些UNICODE编码,比如UTF-8。在后一种情况下,让编码器在字符流的开头包含BOM(字节顺序标记),以便读取或显示输出的应用程序可以正确推断编码。您可能需要使用unicode,因为某些字体将其特殊字符放在不同的位置。这会有所帮助,但会带来另一个问题。请看我几分钟后发布的问题。
Encoding enc = new UTF8Encoding()
string response = enc.GetString(message, 0, bytesRead);
äüÃÃÂ