首页 文章

如何将Apache的默认编码更改为UTF-8?

提问于
浏览
125

我正在使用托管公司,如果文件 index.html 不存在,它将列出目录中的文件,它使用iso-8859-1作为默认编码 .

如果服务器是Apache,有没有办法将UTF-8设置为默认值?

更新:另外我发现它实际上是使用HTML 3.2的DOCTYPE然后根本就没有字符集...所以它没有设置任何编码 . 但有没有办法改变它使用UTF-8?

11 回答

  • 159

    在httpd.conf中添加(或者如果已经存在则更改):

    AddDefaultCharset utf-8
    
  • 6

    将其添加到 .htaccess

    IndexOptions +Charset=UTF-8
    

    或者,如果您拥有管理员权限,则可以通过编辑 httpd.conf 并添加以下内容来全局设置:

    AddDefaultCharset UTF-8
    

    (您也可以在 .htaccess 中使用 AddDefaultCharset ,但这不会影响Apache生成的目录列表 . )

  • 21

    AddDefaultCharset DirectiveAddCharset Directivethis article .

    AddDefaultCharset utf-8
    

    但我必须时不时地使用汉字 . 以前,我将中文字符翻译成Unicode代码,并使用&#hack将其包含在文档中 . 但它仅对具有少量字符的页面有用 . 有一种更好的方法:编码文件名中的字符集信息,apache将根据它输出正确的编码头 . 这可以归功于conf文件中的AddCharset行,例如下面的行:conf / httpd.conf:

    AddCharset UTF-8 .utf8
    

    因此,如果您的文件的名称以.html.utf8结尾,则apache将为该页面提供服务,就像它以UTF-8编码一样,并相应地在标头中转储正确的字符编码指令 .

  • 2

    AddDefaultCharset UTF-8 放入 /etc/apache2/conf.d/charset . 事实上,它已经存在 . 您只需通过删除前面的 # 取消注释即可 .

  • 2

    在.htaccess中添加以下行:

    AddCharset utf-8 .html .css .php .txt .js
    

    这适用于那些无法访问其服务器的conf文件的人 . 当其他尝试失败时,尝试再做一件事 .

    至于使用.htaccess的性能问题,我还没有看到这个 . 我的典型页面加载时间为150-200 mS,有或没有.htaccess

    如果您的页面无法正确呈现,那么性能会有什么好处 . 大多数共享服务器不允许用户访问配置文件,这是添加字符集的首选位置 .

  • 6

    我不确定您是否可以访问Apache配置(httpd.conf),但您应该能够设置AddDefaultCharset指令 . 看到:

    http://httpd.apache.org/docs/2.0/mod/core.html

    查找mod_mime.c模块并确保设置以下内容:

    AddDefaultCharset utf-8
    

    或等效的Apache 1.x文档(http://httpd.apache.org/docs/1.3/mod/core.html#adddefaultcharset) .

    但是,这仅在“响应内容类型为text / plain或text / html”时有效 .

    您还应该确保您的页面也设置了字符集 . 有关详细信息,请参阅此

    http://www.w3.org/TR/REC-html40/charset.html

  • 20

    这是未经测试但可能会有效 .

    在你的.htaccess文件中:

    <Files ~ "\.html?$">  
         Header set Content-Type "text/html; charset=utf-8"
    </Files>
    

    但是,这将需要服务器上的mod_headers .

  • 24

    为了完整起见,在Ubuntu上的Apache2上,您将在conf-available中找到charset.conf中的默认字符集 .

    取消注释该行

    AddDefaultCharset UTF-8
    
  • 1

    如果所有HTML文件都是UTF-8并且没有内容类型的元标记,那么我只能通过添加两个指令来设置Apache 2.4发送这些文件所需的默认值:

    AddLanguage ru .html
    AddCharset UTF-8 .html
    
  • 8

    如果在utf-8中有长文件名,只需提示:默认情况下,它们将缩短为20个字节,因此最后一个字符可能会被“切成两半”,因此无法正确识别 . 然后您可能想要设置以下内容:

    IndexOptions Charset=UTF-8 NameWidth=*

    NameWidth 设置将防止缩短文件名,使其正确显示和读取 .

    正如其他用户已经提到的那样,这应该在 httpd.confapache2.conf (如果你有管理员权限)或 .htaccess (如果你没有)中添加 .

  • 47

    把它留空: 'default_charset' in WHM :::::: default_charset =''

    附: - 在WHM中去--------)主页»服务配置»PHP配置编辑器----)单击“高级模式”----)找到'default_charset'并将其留空----只是没有,不是utf8,不是ISO

相关问题