gpt4 book ai didi

asp.net-mvc - 当指定 UTF-8 时,为什么 ASP.NET MVC 中的 ContentResult Controller 返回 UTF-16?

转载 作者:行者123 更新时间:2023-12-02 09:23:16 24 4
gpt4 key购买 nike

我有一个为嵌入式设备返回 XML 的 ActionResult。相关代码为:

return Content(someString, "text/xml", Encoding.UTF8);

即使指定了 UTF-8,生成的 XML 仍为:

<?xml version="1.0" encoding="utf-16"?>

ASP.NET MVC 被编译为 AnyCPU,并在 Windows 2008 服务器上运行。

为什么它不返回 UTF-8 编码的 XML?

最佳答案

您混淆了 HTTP 响应的编码和响应中包含的 XML 的编码。当您序列化 XML 时,您需要指定它需要采用 UTF-8 编码。在 ContentResult 上设置编码只是告知另一端的浏览器响应的编码方式,它不会将 XML 从一种编码转换为另一种编码。如果您查看 ContentResult 的代码,您会发现它只是在使用您指定的编码和内容类型设置响应 header 之后执行 Response.Write( Content )。

关于asp.net-mvc - 当指定 UTF-8 时,为什么 ASP.NET MVC 中的 ContentResult Controller 返回 UTF-16?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1561891/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com