我正在使用一个托管公司,它将列出在一个目录中的文件,如果文件 index.html不存在。它使用 ISO 8859-1作为默认编码。
index.html
如果服务器是 Apache,是否有方法将 UTF-8设置为默认值?
我发现它实际上使用的是 HTML 3.2的 DOCTYPE,然后根本没有 charset... 所以它没有设置任何编码。但是有没有办法将其改为使用 UTF-8呢?
charset
这是未经测试的,但它可能会工作。
在 . htaccess文件中,添加:
<Files ~ "\.html?$"> Header set Content-Type "text/html; charset=utf-8" </Files>
但是,这需要服务器上的 Mod _ headers。
参见 添加默认字符集指令、 AddCharset 指令和 这篇文章。
AddDefaultCharset utf-8
但我必须用汉字 有时候。以前,我翻译 中文字符转换为 Unicode 码和 方法将其包括在文档中 但是它只有在 有几个字符的页面。 还有一个更好的办法: 中的字符集信息进行编码 文件名,并且 apache 将输出 正确的编码头。 这是可能的感谢 在 conf 文件中的 AddCharset行, 例如: 返回文章页面
但我必须用汉字 有时候。以前,我翻译 中文字符转换为 Unicode 码和 方法将其包括在文档中 但是它只有在 有几个字符的页面。
还有一个更好的办法: 中的字符集信息进行编码 文件名,并且 apache 将输出 正确的编码头。 这是可能的感谢 在 conf 文件中的 AddCharset行, 例如:
AddCharset
返回文章页面
AddCharset UTF-8 .utf8
所以如果你有一个文件 名字以 .html.utf8结尾,阿帕奇将 服务页面,就好像它是编码在 UTF-8,并将转储适当的 中的字符编码指令 标题相应。
.html.utf8
在 httpd.conf 中添加(或者更改,如果它已经存在) :
我不确定您是否能够访问 Apache 配置(httpd.conf) ,但是您应该能够设置 AddDefaultCharset 指令。参见:
Http://httpd.apache.org/docs/2.0/mod/core.html
查找 mod _ ime.c 模块并确保设置了以下内容:
或者等效的 Apache 1.x 文档(http://httpd.apache.org/docs/1.3/mod/core.html#adddefaultcharset)。
但是,这只有在“响应内容类型为 text/clear 或 text/html”时才有效。
你也应该确保你的页面也有一个字符集:
Http://www.w3.org/tr/rec-html40/charset.html
把这个加到你的 .htaccess:
.htaccess
IndexOptions +Charset=UTF-8
或者,如果您有管理员权限,您可以通过编辑 httpd.conf并添加:
httpd.conf
AddDefaultCharset UTF-8
(您也可以在 .htaccess中使用 AddDefaultCharset,但它不会以这种方式影响 Apache 生成的目录清单。)
AddDefaultCharset
在 Ubuntu 12.04上,取消 /etc/apache2/conf.d/charset中 AddDefaultCharset UTF-8行的注释就足够了。如果您正在使用上游 Apache,那么该文件可能被称为 httpd.conf,您可能需要插入这一行。
/etc/apache2/conf.d/charset
在 . htaccess文件中,添加以下代码行:
AddCharset utf-8 .html .css .php .txt .js
这是针对那些无法访问其服务器配置文件的用户的。当其他尝试都失败时,这只是又一个尝试。
至于有关使用文件 . htaccess的性能问题,我还没有看到这一点。我的典型页面加载时间是150-200毫秒,有或没有文件 . htaccess。
如果页面呈现不正确,那么性能有什么好处?大多数共享服务器不允许用户访问配置文件,而这是添加字符集的首选位置。
为了完整起见,在 Ubuntu 上的 Apache2上,您可以在 conf 可用的 charset.conf 中找到默认字符集。
取消注释行
如果所有的 HTML 文件都是 UTF-8格式的,并且没有针对内容类型的 meta 标记,那么我只能通过添加两个指令来设置 Apache 2.4发送这些文件所需的默认值:
AddLanguage ru .html AddCharset UTF-8 .html
提示一下,如果您有 UTF-8格式的长文件名: 默认情况下,它们将被缩短到20字节,因此最后一个字符可能会被“切成两半”,因此无法正确识别。然后,您可能需要设置以下内容:
IndexOptions Charset=UTF-8 NameWidth=*
NameWidth设置将防止缩短您的文件名,使他们正确显示和可读。
NameWidth
正如其他用户已经提到的,这应该添加到 httpd.conf或 apache2.conf(如果您有管理员权限)或 .htaccess(如果您没有)。
apache2.conf
就让它空着吧: 'default_charset' in WHM :::::: default_charset =''
'default_charset' in WHM :::::: default_charset =''
附注: 在 WHM 中,选择→ 回家→ 服务配置→ PHP 配置编辑器→单击 高级模式→查找‘ default _ charset’并将其保留为空白。什么都没有,不是 UTF-8也不是 ISO。
在我的案例中,我将其添加到文件 . htaccess:
AddDefaultCharset off AddDefaultCharset windows-1252
< meta charset = ‘ utf-8’> 覆盖 Apache 默认字符集(Cf/etc/apache2/conf. d/charset)
如果这还不够,那么您可能使用 ISO 8859-1编码字符集创建了原始文件。您必须将其转换为适当的字符集:
iconv -f ISO-8859-1 -t UTF-8 source_file.php -o new file.php