新开一网站,打开全是乱码,立即想到是apache服务器编码的问题,打开apache的配置文件httpd.conf,找到
AddDefaultCharset UTF8
改为
AddDefaultCharset OFF
搞定!
原理:
当且仅当应答内容是text/plain或text/html时,AddDefaultChartset将会在HTTP应答头中加入的默认字符集。理论上这将覆盖在文档体中通过<meta>标签指定的字符集,AddDefaultCharset Off 将会禁用此功能。AddDefaultCharset On 将启用Apache内部的默认字符集iso-8859-1
所以如果设定了AddDefaultChartSet 选项,首先显示服务器设置的字符集,然后才是由网页的meta指定的字符集
AddDefaultCharset只应当在如下情况下使用:所有文本资源都使用同一种确定的字符集,且分别标记他们的字符集非常麻烦。一个这样的例子是向包含动态内容的资源中添加字符集参数(比如先前遗留的CGI脚本),这样可能会因为在输出中包含用户提供的数据而导致跨站点脚本攻击。但是请注意:更好的解决办法是修改或删除这些脚本,因为设置了默认的字符集以后将会使得浏览器的字符集自动探测功能失效。
所以如果你的页面编码是gb2312,而且页面没有指定meta,你就可以直接在虚拟主机主机配置文件或者相应的配置文件中加入AddDefaultCharSet GB2312解决
另利用AddCharSet 建立文件的后缀文件名和相应的字符集进行映射,比如:
AddLanguage ja .ja
AddCharset ISO-2022-JP .jis
文档xxxx.ja.jis会被当成是使用字符集ISO-2022-JP的日文文档

1 评论
添加评论