带有特殊字符的XML UTF-8返回无效字符

时间:2014-03-21 11:06:31

标签: c# xml wpf utf-8 iso-8859-1

我试图阅读此内容,但无济于事。

接下来,我调用一个从邮政编码返回城市名称的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。

我在哪里做错了?有什么想法吗?

0 个答案:

没有答案