分类: LINUX
2011-12-14 10:44:27
最近几天再做平台迁移,同样的系统配置,只是把程序移到稍好的服务器上。问题出来了,所有web页面上的中文都是乱码,我勒个去的。搞了一夜,终于搞定。
中间走了很多弯路,网上都说,修改http.conf中参数,在再web头部添加指定字符集编码,妈呀,这个工程大多了,我网站是生成静态页面的。靠,每个文件都要修改,要死人的。
还按照网上一些高手所说,查看文件的编码方式,下载了编码探测/转换工具,这个工具很不错,但不能解决这个问题,下载地址:
利用网上参考资料,企图解决乱码问题,尝试过以下多种指令,都不可以,崩溃了。
AddDefaultCharset GB2312
DefaultLanguage zh-cn
AddDefaultCharset none
AddDefaultCharset Off
AddLanguage zh-cn .cn
AddCharset gb2312 .html
AddCharset gb2312 .htm
经过分析,应该是由于默认的目录浏览方式是由Apache生成index文件的,因为只能在生成前设定编码。最后查看apache 官方文档,发现Apache Module mod_autoindex 模块。这里面有字符集的设置方法,IndexOptions竟然也有一个关于编码的设置,Charset=character-set 。看到这里,蛋疼的一比。
到这里,问题就好解决了,用浏览器打开网站(还是乱码)--> 右键(编码设置)一个一个试字符集,到我试到GB2312时,开心呐,乱码消失;修改httpd.conf把这句前面注释干掉Include conf/extra/httpd-autoindex.conf ; 在httpd-autoindex.conf 加入
IndexOptions Charset=GB2312
重启apache ,一切正常。。。。。。。