2015-10-08 51 views
0

,响应请求的代码如下:的Chrome/Safari浏览器/ E​​DGE /邮差HTTP头很奇怪的行为

return new HttpStatusCodeResult(ex.Detail.HttpStatusCode, ex.Detail.ReasonPhrase); 
Response.AddHeader("X-Status", ex.Detail.ReasonPhrase); 

这里有趣的是,浏览器/客户端,当有一个特殊的上涉及的字符(如çé)原因短语按预期呈现,但X状态不会!

这里的非信徒 enter image description here

我测试过的编码组合的数量无数,但没有工作......在X-状态,只不过没有截图...

我要使用X-Status自定义标题,因为Safari会覆盖StatusText附带的任何消息...

+1

当您看到原始响应时,您会看到什么?屏幕显示你看起来像解析的响应。此外,你可以使用类似于:HttpUtility.UrlEncode(ex.Detail.ReasonPhrase,Encoding.UTF8) – Hozikimaru

回答

1

HTTP规范没有为标题字段或状态行定义字符编码(以及不超过US-ASCII)。如果你需要非ASCII字符,你是自己的。比如,一种可靠的方法是百分比编码。

另请注意,HTTP/2没有状态行,因此试图使用它返回信息是非首选。

相关问题