如何在NGINX中启用正确的charset HTTP-header

在NGINX中启用正确的charset头文件的正确方法是什么?

我正在用Google Page Speed分析我的网站。 它说,我应该在HTTP头中指定HTML文件的字符集。 什么是正确的方法来做到这一点?

我已经尝试设置charset utf-8; 在我的NGINXconfiguration文件的server {}声明中,但没有任何效果。

我的服务器回应以下标题:

 Connection: keep-alive Date: Fri, 16 Sep 2011 12:43:24 GMT Last-Modified: Fri, 02 Sep 2011 15:13:17 GMT Server: nginx/0.7.67 

谢谢。

添加charset utf-8; 几乎是你需要做的一切。 确定你没有忘记在更改configuration文件后重新加载nginx

除此之外, curl -I http://vorb.de/返回以下结果:

 HTTP/1.1 200 OK Server: nginx/0.7.67 Date: Fri, 16 Sep 2011 13:20:03 GMT Content-Type: text/html; charset=utf-8 Content-Length: 1705 Last-Modified: Fri, 02 Sep 2011 15:13:17 GMT Connection: keep-alive Vary: Accept-Encoding Accept-Ranges: bytes 

所以现在一切都好了

如果你没有设置你想要UTF-8的“charset_types”指令,设置字符集可能不起作用。

例如:当你设置“charset utf-8;”时,所有的HTML都会反映出来,而不是JSON文件,因为它们在“charset_types”中没有默认设置。

http://nginx.org/en/docs/http/ngx_http_charset_module.html#charset_types

您可能还必须调整charset_types设置,以包含您要为其设置字符集设置的MIMEtypes(例如,默认情况下,文本/日历不包括在内)。

对于什么是值得的,我认为text/*应该被默认处理 – 但是你不能在这里使用它(就像Apache IIRC一样)。

请参阅http://nginx.org/en/docs/http/ngx_http_charset_module.html#charset_types