我需要返回一个带有描述的HttpStatusCodeResult对象,其中包含特殊的(对话)字符。我不知道如何设置正确的编码。
return new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Zażółć gęsią jaźń.");应返回:
Zażółćgęsiąjaźń.
但我明白:
Zaórógêsi 1
我试着用Response.Charset = System.Text.Encoding.UTF8.WebName;等,但还是什么也没有。
发布于 2019-01-26 20:12:50
你不应该得到“Zaó状语”。任何地方。
但你不能得到"Zażółćgęsiąjaźń“。在HTTP行原因短语中,因为它只支持ASCII字符集和编码[RFC 7230]。(HTTP标头字段确实有%-编码等机制,但没有状态行。)
因此,您可以将原因短语去掉,并将信息放在正文中:
Response.StatusCode = (Int32)HttpStatusCode.BadRequest;
return Content("Zażółć gęsią jaźń. And, the quick brown fox jumps over the lazy dog. ");使用您想要的任何内容,包括HTML。但是,如果不长看起来是有用的和现代的,那么接收它的web浏览器可能会覆盖内容。您还应该考虑是否将web服务器配置为替换错误页。这可能有助于:
<configuration>
<system.webServer>
<httpErrors existingResponse="PassThrough" />
</system.webServer>
</configuration>https://stackoverflow.com/questions/54367303
复制相似问题