关于Apache的AddDefaultCharset的问题

来源:互联网 发布:yum 尝试其他镜像 编辑:程序博客网 时间:2024/06/05 19:22

今天配置apache负载均衡时,通过代理服务器访问目标服务器的网页总是出现乱码,经查询是代理服务器上的http.conf中的AddDefaultCharset=UTF-8,而网页编码是gb2312,将AddDefaultCharset改为off,网页正常。

通过查询apache参考手册得知:

 

AddDefaultCharset 指令

说明当应答内容是text/plaintext/html时,在HTTP应答头中加入的默认字符集语法AddDefaultCharset On|Off|charset默认值AddDefaultCharset Off作用域server config, virtual host, directory, .htaccess覆盖项FileInfo状态核心(C)模块core

当且仅当应答内容是text/plaintext/html时,此指令将会在HTTP应答头中加入的默认字符集。理论上这将覆盖在文档体中通过<meta>标签指定的字符集,但是实际的行为通常取决于用户浏览器的设置。AddDefaultCharset Off 将会禁用此功能。AddDefaultCharset On 将启用Apache内部的默认字符集iso-8859-1 。您也可以指定使用在IANA注册过的字符集名字中的另外一个charset 。比如说:

AddDefaultCharset utf-8

AddDefaultCharset只应当在如下情况下使用:所有文本资源都使用同一种确定的字符集,且分别标记他们的字符集非常麻烦。一个这样的例子是向包含动态内容的资源中添加字符集参数(比如先前遗留的CGI脚本),这样可能会因为在输出中包含用户提供的数据而导致跨站点脚本攻击。但是请注意:更好的解决办法是修改或删除这些脚本,因为设置了默认的字符集以后将会使得浏览器的字符集自动探测功能失效。

原创粉丝点击