服务器上上了一个GBK的discuz,但是发现出来是乱码。查看一下编码,始终默认为UTF-8,手功选择为GB2312后,刷新一下或者点到其它页面,又变成UTF8了:(
检查页面代码,<meta http-equiv="Content-Type" content="text/html;charset=gbk">这句话已经放在最上面了,在所有中文字符之前,没有问题!开始怀疑是服务器配置问题。
检查apache2/conf/httpd.conf,没有发现强制UTF8的设置,也没有发现默认字符的设置。于是从其它机子的httpd.conf中Copy来了AddDefaultCharset GB2312,加了,还是不行。。。,快19点了,先回家再说。
回到家里发现,服务器上一个UTF-8的站首页乱码了。。。,赶紧在全局设置中把AddDefaultCharset GB2312去掉,想想把这句就加在那个GBK的站点配置里吧。
现在,那个GBK的站点访问还是乱码,建了一个test.htm,头部gbk,可以正常显示中文,但改为test.php后,就不正常了,看来php的配置有问题。
开始检查php.ini,在公司是搜索过的,没有发现有utf,现在再检查下,发现了default_charset="UTF-8",原来vi状态的搜索是区分大小写的。问题应该就在这里,把它改为空,重启Apache。GBK的站点访问正常了。
以为就这样解决了,又发现UTF8站点的htm页不正常了,默认为GB2312了,.php页正常。
想想我这个Blog空间是买的,编码是UTF-8的,访问正常,肯定有其它用户(应该是大部分用户)用的是GB2312的编码,也能正常,所以这个问题肯定是能够解决的。
再去httpd.conf上把AddDefaultCharset GB2312删除。
让朋友访问了下两个站点,终于两边都正常了:)
总结一下,apache的httpd.conf中的AddDefaultCharset可以设置为空,没有必要指定值,除非那台服务器上只有某编码的网站。php的php.ini中的default_charset也可以设置为空,只要程序在头部申明了编码,也就能正常的显示。
apache上的编码问题 Tags: 编码 , utf8 , gbk , gb2312
精选 转载
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
gb2312编码文件转成utf8
将指定目录directory(包含子目录)下的指定后缀名为suffix的文件,统一从编码格式为fromEncoding更改为toEncoding ,比如gbk到utf-8,或者utf-8到gbk
gbk gb2312 utf-8 休闲 encoding -
Python实现文件编码转换GB2312、GBK、UTF-8
Python实现文件编码转换GB2312、GBK、UTF-81、查看文件编码格式import chardetfile
python 文件编码转换 UTF-8转GBK UTF-8转GB2312 编码格式 -
网页编码:UTF-8、GB2312
通过改变charset=utf-8中的utf-8就可以改变网页的编码。 一般我们在写css文件时候
css 区位码 二级 文件编码 多字节
















