我试图阅读此内容,但无济于事。
接下来,我调用一个从邮政编码返回城市名称的API。 返回采用XML格式,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<PostalCodeQueryResponse>
<Response valid="true" postalCodeType="POBOX">OSLO</Response>
</PostalCodeQueryResponse>
然后将其读取并放入文本框中。
但是,如果响应使用了一些特殊字符,例如åäö,则结果如此 完全不同。然后我就离开了这个:
<PostalCodeQueryResponse>
<Response valid="true" postalCodeType="NORMAL">JÖNKÖPING</Response>
</PostalCodeQueryResponse>
现在JÃ-NK-PING,应该是JÖNKÖPING,但是在这种情况下Ö变成了Ã -
我很确定这是因为XML文件使用UTF-8而我试图将其读作ISO-8859-1。因此,在环顾这个宏伟的网站后,我偶然发现了这个小片段:
Encoding iso = Encoding.GetEncoding("ISO-8859-1");
Encoding utf8 = Encoding.UTF8;
byte[] utfBytes = utf8.GetBytes(location.Value.ToString());
byte[] isoBytes = Encoding.Convert(utf8, iso, utfBytes);
string city = iso.GetString(isoBytes);
但是使用它会在文本框中返回相同的JÃ-NK-PING。
我在哪里做错了?有什么想法吗?