2012年7月10日火曜日

UTF-8のJSPで文字化け

まだ理解はしていないけど、すべてエンコーディングはUTF-8に統一しているJSPで、文字化けする場合がある。
|がï½になったりしている。JSP内に直接記述しているマルチバイト文字が文字化けしているだけ。
メイン画面があり、そのメイン画面にincludeディレクティブで、ヘッダやフッタをインクルードしている。
このヘッダやフッタで直接マルチバイト文字を使用している部分やJSP内のコメントが文字化けをしている。
国際化により、ラベルなどはすべてプロパティファイルを使用している。
プロパティファイルに記述している部分は文字化けをしていないので、JSPからJavaにコンパイルするときに文字化けになったと考えられる。
すべてのJSPは(インクルードするファイルも含めて)UTF-8であることは確認している。
また、メイン画面のcontentTypeもインクルードするファイルのpageEncodingもUTF-8にしている。
なぜ一部の画面だけ文字化けするのか不思議だった。
JSPをテキストエディタで開いてもUTF-8だし、この時点では文字化けもしていない。
再度テキストエディタで開いてみると文字化けをしているファイルはUTF-8(BOMなし)で、文字化けをしていないファイルはUTF-8(BOMあり)となっている。
BOMを追加して実行してみると見事に文字化け解消。ただ、すべてのBOMなしで文字化けが出ているかというと、そうではなく、文字化けしていない画面がほとんど。
開発機のTomcat6では問題なし。Weblogic 10や11で発生した。
文字化けをする画面を調査して、すべてBOMありに直さないと。
[雑記]jsp utf-8 文字化け 解消に書いてある。

0 件のコメント:

コメントを投稿