Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Umlaute编码错误!_C#_.net_Encoding - Fatal编程技术网

C# Umlaute编码错误!

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

我取回一条小溪。 除了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(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);
äüÃÃÂ