0

こんにちは、私が取り組んでいるアプリケーションの 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 

ここで何がうまくいかないのですか?

4

1 に答える 1