我需要返回带有描述的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;
等,但还是没有。
答案 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}}