如何将默认编码更改为UTF-8的Apache?
我正在使用托pipe公司,如果文件index.html
不存在,它将列出目录中的文件,它使用iso-8859-1作为默认编码。
如果服务器是Apache,是否有办法将UTF-8设置为默认值?
更新:此外,我发现它实际上是使用HTML 3.2的DOCTYPE,然后根本没有字符集…所以它没有设置任何编码。 但有没有办法改变它使用UTF-8?
在httpd.conf中添加(如果已经存在,则更改):
AddDefaultCharset utf-8
把这个添加到你的.htaccess
:
IndexOptions +Charset=UTF-8
或者,如果您拥有pipe理员权限,则可以通过编辑httpd.conf
并添加以下内容来全局设置它:
AddDefaultCharset UTF-8
(您也可以在.htaccess
使用AddDefaultCharset
,但不会以这种方式影响Apache生成的目录列表。)
请参阅AddDefaultCharset指令 , AddCharset指令和本文 。
AddDefaultCharset utf-8
但我必须不时地使用中文字。 以前,我将中文字符翻译成Unicode代码,并使用
&#
hack将它包含在文档中。 但它只对有几个字符的页面有用。有一个更好的方法来做到这一点:编码字符集信息的文件名,和Apache将输出正确的编码标题的基础上。 这可能要归功于conf文件中的
AddCharset
行,比如下面这行:
conf/httpd.conf
:
AddCharset UTF-8 .utf8
所以如果你有一个名字以
.html.utf8
结尾的文件,apache将会像使用UTF-8编码一样提供页面,并且相应地在头文件中转储正确的字符编码指令。
将AddDefaultCharset UTF-8
放入/etc/apache2/conf.d/charset
。 事实上,它已经在那里了。 你只需要通过删除前面的#
来取消注释。
在.htaccess中添加这一行:
AddCharset utf-8 .html .css .php .txt .js
我不确定您是否有权访问Apacheconfiguration(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 )。
但是,这仅适用于“响应内容types为text / plain或text / html”的情况。
你也应该确保你的页面也有一个字符集。 查看更多信息:
这是未经testing,但可能会工作。
在你的.htaccess文件中加上:
<Files ~ "\.html?$"> Header set Content-Type "text/html; charset=utf-8" </Files>
但是,这将需要服务器上的mod_headers。
为了完整起见,在Ubuntu上的Apache2上,你可以在charset.conf中find默认的字符集。
取消注释该行
AddDefaultCharset UTF-8
如果所有的HTML文件都是UTF-8,并且没有内容types的元标记,那么我只能通过添加这两个指令来设置Apache 2.4发送这些文件所需的默认值:
AddLanguage ru .html AddCharset UTF-8 .html
如果你在utf-8中有很长的文件名,只需要提示一下:默认情况下,它们会缩短为20个字节,所以最后一个字符可能会被“减半”,因此无法正确识别。 那么你可能想要设置以下内容:
IndexOptions Charset=UTF-8 NameWidth=*
NameWidth
设置将防止缩短文件名,使其正确显示和可读。
正如其他用户已经提到的,这应该添加在httpd.conf
或apache2.conf
(如果你有pipe理员权限)或.htaccess
(如果你不)。
只要把它留空即可: 'default_charset' in WHM :::::: default_charset =''
PS – 在WHM去——–)首页»服务configuration»PHPconfiguration编辑器—-)单击“高级模式”—-)find“default_charset”,并保持空白—-只是什么都不是,不是utf8,不是ISO