CentOS里Apache强制UTF-8乱码的解决
CentOS
Apache
发布时间:2025-03-14 13:41:19
之前的网页都是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
再到浏览器中浏览网页,一切正常,问题解决!
评论: