我检索一个流。 一切都很好但是Umlaute(ä,ö,ü,ß)的编码。
什么是
NäüßÖ'sasviele Umlaute
成为
NäüÃÃÂ'sas所以viele Umlaute
我尝试了Ascii-Encoding和其他一些,如下面的来源所示。
ASCIIEncoding encoder = new ASCIIEncoding();
Encoding enc = Encoding.GetEncoding(28591);
string response = enc.GetString(message, 0, bytesRead);
哪一个会解决我的问题?
答案 0 :(得分:7)
答案 1 :(得分:5)
以下字符äüßÖ
均不是ASCII。
您应该使用与它们相同的编码(可能是UTF-8):
Encoding enc = new UTF8Encoding()
string response = enc.GetString(message, 0, bytesRead);
您正在使用的代码页(28591)是mapped到iso-8859-1,其中包含这些字符,但它们可能编码为UTF-8(或其他unicode变体)但不是iso-8859- 1。您需要使用正确的编码才能获得正确的编码字符。
答案 2 :(得分:0)
如果您需要8位编码,请使用支持德语字符的ISO-8859-2(或Latin 2)。或者,如果可以的话,使用一些像UTF-8这样的UNICODE编码。在后一种情况下,让编码器在字符流的开头包含BOM(字节顺序标记),以便读取或显示输出的应用程序可以正确推断编码。