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



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

using (var str = await Request.Content.ReadAsStreamAsync())
using (var fileStream = File.Create(@"C:directorysomename.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记事本中看起来不错,但在记事本++中损坏。

它编码正确,但显示错误。这在浏览器和服务器之间一直发生。有时 8859 会被翻译,有时不会被翻译。坚持使用 UTF-8,它似乎正在占据突出地位。ISO-8859-*在过去十年中很时髦。

最新更新