响应请求的代码如下:
return new HttpStatusCodeResult(ex.Detail.HttpStatusCode, ex.Detail.ReasonPhrase);
Response.AddHeader("X-Status", ex.Detail.ReasonPhrase);
这里有趣的是,在浏览器/客户端上,当涉及到特殊字符(例如ç
或é
)时,原因短语会按预期呈现,但X -Status不!!!“
我已经测试了无数个编码组合,但都没有工作...... X-Status刚刚失败......
我必须使用X-Status
自定义标头,因为Safari会覆盖StatusText
附带的任何消息......
答案 0 :(得分:1)
HTTP规范没有为头字段或状态行定义字符编码(嗯,不超出US-ASCII)。如果您需要非ASCII字符,那么您就是自己的。例如,一种可靠的方法是百分比编码。
另请注意,HTTP / 2没有状态行,因此无论如何,尝试使用它来返回信息都是非启动的。