MyFacesの文字化けはExtensionsFilterが原因みたいだ

自前のフィルタを作って文字エンコーディングがどこでおかしくなるのかを追いかけていたら,最後までおかしくなっていない。「変だなあ。この後ろはフィルタしかないぞ」と思って閃く。MyFacesは独自機能の一部(JavaScriptやファイルアップロード)を使用する場合に,独自のフィルタを設定してやる必要がある。もしやと思い一時的にフィルタを外してみると,見事に文字化けが直る。ここか,ここなのか?
とりあえずExtensionsFilter.javaを見てみる。

response.getOutputStream().write( extendedResponse.getBytes());

元のレスポンスを拡張したやつからgetBytes()して,そのままOutputStreamに書き込んでいる。これで文字エンコーディングが無視されちゃうのかなー。うーむ。