mod_proxy_html 乱码非 ASCII 字符

mod_proxy_html 乱码非 ASCII 字符

我已经在 CentOS 6.4 机器上使用 mod_proxy、mod_proxy_html (3.1.3) 和 mod_xml2enc 设置了反向代理。

代理可以很好地为目标服务器提供服务,但它会使非 ASCII 字符变得混乱(在我的情况下是“äöüéàè”)。

我搜索了整个地图试图找到解决方案但无济于事。

响应标头中正确指定了编码,并且与目标服务器的编码相同(utf-8)。我还尝试通过以下方式显式设置 xml2enc 使用的编码:

xml2EncDefault utf-8

但没有效果。

我正在虚拟主机上运行代理,代理配置设置如下:

ProxyRequests off

ProxyHTMLLinks  a               href
ProxyHTMLLinks  area            href
ProxyHTMLLinks  link            href
ProxyHTMLLinks  img             src longdesc usemap
ProxyHTMLLinks  object          classid codebase data usemap
ProxyHTMLLinks  q               cite
ProxyHTMLLinks  blockquote  cite
ProxyHTMLLinks  ins             cite
ProxyHTMLLinks  del             cite
ProxyHTMLLinks  form            action
ProxyHTMLLinks  input           src usemap
ProxyHTMLLinks  head            profile
ProxyHTMLLinks  base            href
ProxyHTMLLinks  script          src for
ProxyHTMLLinks  iframe          src

ProxyPass /foo/ http://someserver.com/
ProxyPassReverse /foo/ http://www.someserver.com/

<Location /foo/>
   SetOutputFilter INFLATE;proxy-html;DEFLATE
   ProxyPassReverse /
   ProxyPassReverseCookiePath / /foo
   ProxyHTMLURLMap http://www.someserver.com /foo
   ProxyHTMLURLMap http://someserver.com /foo
   RequestHeader    unset  Accept-Encoding
</Location>

答案1

事实证明,“mod_proxy_html”在这一切中是无辜的。

通过以下方式声明编码:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

使问题消失。

这有点奇怪,因为“Content-Type”在响应标头中已正确设置。

相关内容