2009-04-03 12 views
2

Tomcat 6/Linux上のサーブレットからUTF-8を読み書きする際にいくつかの問題がありました。要求と応答はutf-8、ブラウザはutf-8、URIエンコードはコネクタとホストの両方でserver.xmlに設定されていました。短いですが、コード自体で私のために知られているものはすべて、サーバーの設定はutf-8でした。UTF-8とサーブレットon Tomcat/Linux

リクエストを読むとき、Stringからバイト配列を取り出し、そのバイト配列をStringに再度変換する必要がありました。私は文字列ではなくバイトを書いて、適切な応答を得なければなりませんでした(そうでなければ、ASCII以外の文字が有効なISO 8859-1ではないという例外が出ます)。

+0

私はあなたがここからそれを見ることができる答えを見つけました。 http://isurueng.blogspot.com/2011/12/utf-8-and-jspservlets-on-tomcatlinux.html – Isuru

答えて

5

LANG環境変数を変更することは、この問題を解決する1つの方法です。

公式の方法はsevletフィルタの文字エンコーディングを設定することです:http://wiki.apache.org/tomcat/Tomcat/UTF-8

いくつかの背景情報:http://www.crazysquirrel.com/computing/general/form-encoding.jspx

+0

ありがとう!私はこれについてグーグルをしていましたが、今までは合理的な説明は見つかりませんでした。 – Slartibartfast

0

解決策は、LANG環境変数を(私の場合は)en_US.UTF-8、または他のUTF-8ロケールに設定することでした。私はまだ私のサーブレットを正しく動作させるためにコードから何もできないという事実に困惑しています。それをする方法がない場合、それは私の視点からのバグです。