HttpStatusCodeResult消息编码

时间:2019-01-25 14:31:10

标签: asp.net-mvc character-encoding http-status-codes

我需要返回带有描述的HttpStatusCodeResult对象,该对象包含特殊(变音符号)字符。我不知道如何设置正确的编码。

return new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Zażółć gęsią jaźń.");

应返回:

  

Zażółćgęsiąjaźń。

但是我得到了

  

Za¿ó³ægêsi¹jañ。

我尝试使用Response.Charset = System.Text.Encoding.UTF8.WebName;等,但还是没有。

1 个答案:

答案 0 :(得分:2)

您不应该得到“Za¿ó³ægêsi¹jañ”。任何地方。

但是您无法获得“Zażółćgęsiąjaźń”。在HTTP状态行原因短语中输入,因为它仅支持ASCII字符集和编码[RFC 7230 ]。 (HTTP标头字段确实具有用于%编码等的机制,但没有状态行。)

因此,您可以省略原因短语,然后将消息放在正文中

<configuration>
  <system.webServer>
    <httpErrors existingResponse="PassThrough" />
  </system.webServer>
</configuration>

使用所需的任何内容,包括HTML。但是,收到not long enough似乎有用和现代的内容的Web浏览器可能会覆盖该内容。您还应该考虑是否将Web服务器配置为替换错误页面。这可以帮助:

{{1}}