我在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 ++中已损坏。
答案 0 :(得分:0)
它编码正确,但显示错误。这种情况一直发生在浏览器和服务器之间。有时8859会被翻译,有时候不会翻译。坚持使用UTF-8,它似乎突出了。 ISO-8859- *是过去十年的佼佼者。