今天一客户找到我,说他的网站是GBK编码的,而我们的服务器是UTF-8编码的,造成每次打开页面都要单独的去选择一下编码,这样对用户体验很不好,我想了想也是,然后就上网找,说实话,我对技术不懂什么,基本上都是靠百度与GOOGLE来完成一些技术问题的。找了一些资料看了下,原来很简单只需要在APACHE的默认设置里面吧默认编码关闭掉就可以,很简单的。现在吧别人的内容转过来大家看看!
以下为具体解决方法:
1、httpd.conf中设置AddDefaultCharset off,并在原gb2312编码系统所设置的虚拟主机字段中加入AddDefaultCharset gb2312。
2、注释掉php.ini文件中的default_charset = “gb2312″
3、重启apache服务,搞定!
以下为转贴:
使用AddCharset变量将字符编码应用到指定后缀名的当前目录以及子目录的所有文件上。比如,为所有后缀名为.html的文件指定UTF-8字符编码,我们可以在.htaccess文件中加入一下代码:
AddCharset UTF-8 .html后缀名可以是包括或者省略前面的”.”. 我们也可以在一行中同时指定多个后缀名。在一般情况下,最好将Apache的默认字符编码设置为UTF-8;
AddDefaultCharset utf-8AddDefaultCharset可以为On/Off或者任何在IANA注册的,在MIME介质类型中使用的字符值。当且仅当响应的content-type是text/plain或text/html时,它会为介质类型字符参数指定默认的值。这个值会覆盖在响应中通过META指定的字符集,当然最后的行为还要取决于用户使用的客户端/游览器设置。当AddDefaultCharset为Off时,将关闭这个功能;设置为On时,将使用默认的字符集iso-8859-1;或为AddDefaultCharset指定可选的字符集比如UTF-8。
通过使用AddType也可以实现字符编码设置,这个参数会同时指定字符编码和MIME类型。AddType ‘text/html; charset=UTF-8′ html在Apache中,我们也可以为某一个特定的文件设置字符编码。比如,我们希望在一个文件夹中,只对文件example.html使用UTF-8,而其他文件仍然是用默认编码。我们可以编辑这个文件夹下的.htaccess文件,并添加如下内容:
<Files “example.html”>
AddCharset UTF-8 .html
</Files>通过以下配置,可以实现同样的效果:
<Files “example.html”>
ForceType ‘text/html; charset=UTF-8′
</Files>我们也可以使用正则表达式为多个文件指定编码。例如:
<FilesMatch “.(htm|html|css|js)$”>
AddCharset UTF-8 .html
</FilesMatch>
或
<FilesMatch “.(htm|html|css|js)$”>
ForceType ‘text/html; charset=UTF-8′
</FilesMatch>注:需要注意的是配置参数的顺序对于结果起到重要的作用。比如在配置文件中有如下设置:
AddCharset UTF-8 .utf8
AddCharset windows-1252 .html在这种配置下,文件example.utf8.html将使用windows-1252,而example.html.utf8将使用UTF-8字符编码;