MyFacesにおける文字化け

JSFオープンソース実装であるApache MyFacesを使っているが,ときどき文字化けが発生する。まだ条件を詰めきれていないのだが,以下のようなパターンで発生する。使い方が悪いのか,MyFacesが悪いのかも現状では不明。

  • JSFJSPのpageディレクティブを使って,pageEncodingとcontentTypeを指定した場合に,httpヘッダは出力エンコーディングの指定(contentType)に従っているのに,実際にはプラットフォームデフォルトでエンコードされた文字列が送られてくる
  • contentTypeを削除すると,今度はhttpヘッダがソースのエンコーディング(pageEncoding)になってしまう。実際にはプラットフォームデフォルトでエンコードされた文字列が送られてくる。
  • 両方ともJSFJSPソースコード中に埋め込んだ日本語文字列でおきる。jsfのカスタムタグ中の日本語は化けない(実 風にエスケープされるため)。
  • JSFじゃないJSPは問題ない。