こんにちは、私が取り組んでいるアプリケーションの 1 つを UTF-8 互換にしようとしていました。私のenvは次のとおりです:linux os、httpリスナーとしてのapahce Webサーバー、サーブレットエンジンとしてのtomcat
mod_jk で構成された apache と tomcat は、ajp コネクタを使用します。
いくつかのサイトからUTF-8の基本的なガイドラインを読み、推奨事項に基づいて次のことを試しました
server.xml 内のコネクタ用URIEncoding="UTF-8"
の 設定 useBodyEncodingForURI =true
を使用してbashrc/.profileに言語を設定します LANG =en_US.UTF8
デフォルトで utf-8 エンコーディングを使用するように Apache サーバーを構成します。つまり、デフォルト文字セットとして utf-8 を指定します。
AddDefaultCharset utf-8
Tomcat の起動時に Java 引数として utf-8 を設定します。使用して
JAVA_OPTS="-Djavax.servlet.request.encoding=UTF-8 -Dfile.encoding=UTF-8"
また、Web ページに適切なメタ タグが次のように構成されていることも確認しました。
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
このすべてにもかかわらず、UTF-8 文字を読むのに苦労しています。どこが間違っているのでしょうか?
興味深い観察は、インターネット エクスポーラーと chorm だけで問題に直面していることです。サーバーに utf-8 文字を送信するために fire fox を使用すると、それらを正しく読み取ることができます。ただし、文字は IE と chorme でめちゃくちゃになっています。問題がどこにある可能性がありますか?
chrome と Fire fox の間で私が気付いた唯一の変更点は、contentType ヘッダーの変更点です。
Firefox からのリクエストのリクエスト ヘッダーは次のとおりです。
Content-Type: application/x-www-form-urlencoded; charset=utf-8
クロム(および可能性のあるIEも同様ですが、私はチェックしませんでした)はどこですか
Content-Type: application/x-www-form-urlencoded
ここで何がうまくいかないのですか?