CentOS里Apache强制UTF-8乱码的解决

之前的网页都是gb2312编码格式的,每个页面都带有HTML的meta标签说明本页使用的是gb2312编码(DW自带的那段代码)。结果用Firefox、IE、Opera三个浏览器访问都是乱码。这简直太奇怪了!明明我浏览器里编码是选择的“自动选择”的,按道理来说浏览器应该读取HTML页面的meta标签,按照GB2312编码显示网页,可是这些浏览器都无一例外的自动选择了UTF-8!查看网页源代码,HTML的meta头还是标记的charset=gb2312,并没有变成utf-8。奇怪了,难道是CentOS的Apache强制将网页编码改成了UTF-8?

抱着这样一种心态,跑到搜索引擎上一查询,嘿,还真有这样的情况。部分VPS提供的CentOS默认是开启了强制将页面编码转换成UTF-8的功能的。一旦开启了此功能,不管HTML中原来的meta标签中的charset,浏览器将会一律以UTF-8形式渲染,于是导致了乱码的产生。

知道原因就好办了,这是Apache的一个参数“AddDefaultCharset”导致的。我们来更改下Apache的配置文件,让这个参数变为OFF即可。

输入:

#vim /etc/httpd/conf/httpd.conf
找到原来的

AddDefaultCharset UTF-8
将它改为

AddDefaultCharset OFF
输入wq保存并退出vim后,使用重载命令或者重启Apache即可生效,这里我选择了重启Apache:

#/etc/init.d/httpd restart
再到浏览器中浏览网页,一切正常,问题解决!

发布者

Jason Lin

人生就是一场旅行,请多留意沿途的风景!

发表评论

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