IIS设置响应头的字符集(Content-Type charset)
这段时间一直在优化网站,用gtmetrix.com测试了下,总体还可以。发现我页面里通过meta标签设置了字符集,但响应头的字符集没有一直没有设置。
检查的结果如下:
我用浏览器工具抓取了下页面,可以看到报头如下:




Avoid a character set in the meta tag |
B (85)
|
Content | High | |
What does this mean?
The following resources have a character set specified in a meta tag. Specifying a character set in a meta tag disables the lookahead downloader in IE8. To improve resource download parallelization, move the character set to the HTTP Content-Type response header. |
查了下万能的网络,知道在HTML文档的响应头中指定一个字符集可以让浏览器立即开始解析HTML和执行脚本。 为了避免这些延迟,你需要在http响应头中指定你使用的字符集。注意:如果通过meta标签http-equiv来指定字符集,IE8的先行下载(lookahead downloader)功能将被禁用。禁用IE8的先行下载功能回导致加载页面的时间大大增加。微软是这样写的:我们强烈建议Web开发人员在HTTP的Content-Type响应头中指定字符集,因为这样可以确保先行下载的性能优势得以实现。

“响应头”中 Content-Type 的内容只有“text/html” 没有 charset 信息。
下面是如何在IIS下面配置页面的响应头:
1,首先我们打开IIS里面的MIME类型。

2,然后给需要的页面类型添加上字符集即可

再用工具测试下,可以发现,响应头的字符集已经设置成功了。Content-Type:text/html;charset=utf-8

对于.php的页面,我们需要在php.ini文件中设置字符编码
default_charset = "UTF-8"