这个问题具体是关于Apache服务器(在我的情况下是2.2)在使用默认的内部页面时使用的字符集。 例如, mod_autoindex目录列表,未find的ErrorDocument页面,500内部错误页面等
Apache目前使用的这些内置页面的字符集是iso-8859-1(见截图)。

这里是我的相关的Apache设置:
# apache2.conf: AddDefaultCharset utf-8
我的操作系统是Debian 7,我使用它的默认prefork二进制。 我在想这些网页上的字符集可能不会改变。 或者,也许有一个编译时选项,影响默认字符集?
在我的(特定于Debian的)/ etc / apache2 / envvars中,我find了默认的语言环境:
$ cat /etc/apache2/envvars . /etc/default/locale $ cat /etc/default/locale LANG="en_US.UTF-8 $ env | grep LANG LANG=en_US.UTF-8
使用mod_headers修改Content-Type标题对Apache的默认内部页面没有影响。
对的,这是可能的。 您可以使用ErrorDocument , <Location>和ForceType的组合来完成此ForceType ,如下所示:
ErrorDocument 404 /404.html <Location /404.html> ForceType "text/html; charset=utf-8" </Location>