Nginx设置同时支持GBK和UTF-8编码解决网页乱码

今天无意间看到博客里面的apache的中文手册打开竟然是乱码。

手动调整了下浏览器编码发现GBK编码可以正常显示,但是我wordpress是UTF-8的编码,nginx里面也设置了UTF-8的编码。
所以当浏览器打开apache中文手册的时候,会自动匹配成UTF-8的编码,就乱码了。

我的apache中文手册的url是http://www.yourdomain.com/apachedoc/
那如何不影响wordpress的情况下设置apache手册的编码呢
在nginx的http段设置

http {
...
charset utf-8;
...
include /etc/nginx/conf.d/*.conf;
}

然后在博客的server段针对apache这个目录设置编码,如下:

server {
listen 80;
server_name www.yourdomain.com yourdomain.com;

location /apachedoc/ {
charset gbk;
}

}

设置之后,通过查看url为apachedoc下面的页面的header可以看到charset=gbk

Connection:keep-alive
Content-Encoding:gzip
Content-Type:text/html; charset=gbk
Date:Fri, 11 Jul 2014 05:36:52 GMT
Last-Modified:Wed, 30 Apr 2014 13:40:09 GMT
Server:nginx/1.0.15
Transfer-Encoding:chunked
Vary:Accept-Encoding

其他的页面的charset还是UTF-8。这样就不影响其他的页面,而apachedoc这个页面的编码也是正常的。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注