MyFacesの文字化け(状況のまとめ)
まだ解明しきれていない。
- JBoss 3.2.7
- Windows XPやFreeBSD上で起きる
- ブラウザはIEでもFireFoxでも起きる。
- 起きるマシンと起きないマシンがある。JavaVMやJBossのわずかなバージョン差などが関係するのか?
- .jsfファイル中に直接日本語を記述してある箇所が化ける。JSFのタグ(outputTextなど)に記述した日本語は化けない。
- content-typeにセットしたエンコードにならず,そこだけプラットフォームデフォルトの文字コードで送られてくる。
- httpヘッダはcontent-typeにセットしたものを返してくるので,ブラウザが混乱して文字化け。
- Javaソースに変換後のJSPを見ると,文字列は普通にUTF-8の日本語だった。
- そもそもJSFではjsp中に直接日本語を書いてはいけないのか? そんなことないよね。
- MyFacesのバグデータベースには「出力エンコーディングがUTF-8のときには,マルチバイトの文字列をUniCodeエスケープする必要はない」というのがあがっている。似ているようで逆。パッチもあがっているので試す価値はあるかも。