我正在尝试在我的本地apache服务器上设置windex以更改自动生成的文件索引;我的一些文件和文件夹有utf-8字符,例如»。
这应该不是问题,因为html标头的字符集设置为utf-8
。 php文件已在utf-8
中编码。我甚至在我的httpd.conf中为Apache服务器设置了'AddDefaultCharset
',但是当我尝试加载任何页面时,我在响应头中得到'Content-Type:text/html;charset=ISO-8859-1
'。
造成这种情况的原因是什么,如何阻止它?
答案 0 :(得分:11)
事实证明,Apache有一个单独的设置来编码它生成的索引。您可以通过将此行添加到.htaccess
文件中来设置索引的字符集,该文件放在将生成索引的目录中:
IndexOptions Charset=UTF-8
这为我修好了!
答案 1 :(得分:0)
AddDefaultCharset 在.htaccess或httpd.conf中,您可以添加:
AddDefaultCharset utf-8
AddCharset用于定义任何给定文件扩展名的字符集。
在.htaccess或httpd.conf中,您可以添加:
AddCharset utf-8 .html .css .php .txt .js
在PHP中(在输出任何页面内容之前):
<?php
header('Content-Type: text/html; charset=utf-8');
如果您已使用HTML元标记(无法编辑配置或htaccess),那么它必须是<head>
之后的第一件事。
参考:Best Practice: Get your HEAD in order
<head><meta http-equiv="content-type" content="text/html; charset=UTF-8">
答案 2 :(得分:-1)
对于html
将以下内容放在<head>
</head>
标记之间:
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
对于xhtml
将以下内容放在<head>
</head>
标记之间:
<meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8"/>
用:
开始你的php文件<?php echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" ?>