mod_proxy_html は非 ASCII 文字を文字化けします

mod_proxy_html は非 ASCII 文字を文字化けします

CentOS 6.4 ボックスで、mod_proxy、mod_proxy_html (3.1.3)、mod_xml2enc を使用してリバース プロキシを設定しました。

プロキシはターゲット サーバーに問題なく接続しますが、ASCII 以外の文字 (私の場合は「äöüéàè」) は文字化けします。

この問題を解決する方法を見つけようと、Google であらゆる場所を検索しましたが、見つかりません。

エンコーディングは応答ヘッダーで正しく指定されており、ターゲット サーバーのエンコーディング (utf-8) と同一です。また、xml2enc で使用されるエンコーディングを次のように明示的に設定することも試みました。

xml2EncDefault utf-8

しかし効果はありませんでした。

プロキシ構成を次のように設定して、vhost からプロキシを実行しています。

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」が適切に設定されていたため、これは少し奇妙です。

関連情報