Umlaute编码错误!

Hed*_*dge 3 .net c# encoding

我检索一个流.一切都很好但是Umlaute(ä,ö,ü,ß)的编码.

什么是

NäüßÖ'sas所以viele Umlaute

NÃÃÃÃÃÃÂ'sas所以viele Umlaute

我尝试了Ascii-Encoding和其他一些,如下面的源代码所示.

ASCIIEncoding encoder = new ASCIIEncoding();
Encoding enc = Encoding.GetEncoding(28591);

string response = enc.GetString(message, 0, bytesRead);
Run Code Online (Sandbox Code Playgroud)

哪一个会解决我的问题?

zwo*_*wol 7

我对.NET一无所知,但我知道这种模式的mojibake:

äüÃÃÂ
Run Code Online (Sandbox Code Playgroud)

是UTF-8被误解为ISO-8859-1的特征.因此,尝试将输入处理为UTF-8.


Ode*_*ded 5

以下字符äüßÖ均不是ASCII.

您应该使用与它们相同的编码(可能是UTF-8):

Encoding enc = new UTF8Encoding()
string response = enc.GetString(message, 0, bytesRead);
Run Code Online (Sandbox Code Playgroud)

您正在使用的代码页(28591)映射到iso-8859-1,其中包含这些字符,但它们可能编码为UTF-8(或其他unicode变体),但不是iso-8859-1.您需要使用正确的编码才能获得正确的编码字符.