邮件请求的编码

时间:2012-03-12 14:38:59

标签: .net http post character-encoding

在我的web.config文件中,我有以下行:

<globalization requestEncoding="utf-8" responseEncoding="utf-8" />

所以我理解服务器会将浏览器发布请求解释为utf-8。 我使用了firebug并且检查了post请求的编码是:

Accept-Encoding gzip, deflate

一切正常,但我有以下问题:

  1. 如果帖子采用不同的编码,会发生什么?

  2. 有没有办法在浏览器选项中设置发布请求的编码(所以我可以测试一下 那)?

1 个答案:

答案 0 :(得分:2)

首先 - Accept-Encoding与响应的传输编码有关(值gzip, deflate表示客户端会愉快地接受使用gzip或{{压缩的压缩响应1}}压缩)。

实际文本的字符编码,它通常作为deflate标题的一部分包含在请求和响应中 - 例如Content-Type(半结肠后面的最后一位是字符编码)。

因此,客户端可以通过为内容类型标头提供额外的text/html; charset=UTF-8后缀来显式提供请求正文的字符编码 - 尽管浏览器会根据用户的区域设置自动选择正确的后缀(例如,如果日本人可能会使用utf-16我猜)。如果基础字节也没有写入该编码,则没有任何意义。

浏览器通常不包含特定的字符编码;服务器也是如此(尽管他们现在经常这样做)。

然后,使用全球化元素来确定服务器将 假设 的编码,如果在请求中未指定字符编码,或者同样不明确由响应中的页面设置。这被描述为here

因此,它不会影响您的应用程序解释其他字符编码的能力 - 只要客户端正确地形成请求,服务器就能够解码请求。