在POST请求中使用xml编码iso-8859-1的损坏符号

时间:2016-02-20 10:01:16

标签: xml asp.net-web-api encoding corruption

我在asp.net web api控制器中使用此代码将xml内容保存到文件:

using (var str = await Request.Content.ReadAsStreamAsync())
using (var fileStream = File.Create(@"C:\directory\somename.xml")
{
    await str.CopyToAsync(fileStream);
}

如果我寄这个:

<?xml version="1.0" encoding="utf-8"?>
<root>Förstelärare</root>

没关系。但在这种情况下:

<?xml version="1.0" encoding="iso-8859-1"?>
<root>Förstelärare</root>

我在文件中看到了这个:

<?xml version="1.0" encoding="iso-8859-1"?>
<root>Förstelärare</root>

我看到编码问题。如何正确修复? 我发布请求uisng chrome扩展RestClient。在另一种情况下,我们使用WebRequest将数据从请求流上传到ftp服务器。同样的问题。
更新:另一个有趣的事情 - 损坏的数据在Windows记事本中看起来不错,但在Notepad ++中已损坏。

1 个答案:

答案 0 :(得分:0)

它编码正确,但显示错误。这种情况一直发生在浏览器和服务器之间。有时8859会被翻译,有时候不会翻译。坚持使用UTF-8,它似乎突出了。 ISO-8859- *是过去十年的佼佼者。