您的位置主页 > 服务器专区 > Apache > apache同时支持GBK和UTF-8编码

apache同时支持GBK和UTF-8编码

2011-04-20    文章来源:互联网    浏览次数:926     分享文章

使用AddCharset变量将字符编码应用到指定后缀名的当前目录以及子目录的所有文件上。比如,为所有后缀名为.html的文件指定UTF-8字符编码,我们可以在.htaccess文件中加入一下代码:
 
AddCharset UTF-8 .html
 
后缀名可以是包括或者省略前面的”.”. 我们也可以在一行中同时指定多个后缀名。在一般情况下,最好将Apache的默认字符编码设置为UTF-8;
 
AddDefaultCharset utf-8
 
AddDefaultCharset可以为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字符编码;

文章评论(查看全部)

昵 称 *
电子邮箱 *
网 址      1 + 9 = ?