Linux上でWindows-31JなHTMLファイルを<jsp:include ... />すると、文字化けが発生。Tomcatのソースを読むと、DefaultServletでInputStreamReaderを作成するときにencodingを指定していない。これだと文字化けもする罠。
Tomcatの起動時にデフォルトロケールやfile.encodingを使って、無指定のときのencodingを設定できる。しかしこれだとWeb Application毎にリソースのEncodingが異なっていたら対応できない。そもそもリソースのEncoding如きがApplication Server全体の設定に依存して良い物とも思えない。
と言うわけで、DefaultServletにfileEncodingパラメータを追加するpatchを作ってみた。これならWeb Application配置時に指定できるので、良いと思われる。さすがにWeb Application内のリソースで複数のencodingが混在する事は無いだろうし。
そもそも、コメントとしてFIX MEと記載されていたこともあり、Bugzzilaにも登録してみる。かなり英語が不安だが、採用されるといいなぁ。
Vote! しときやした
大変お世話になりましたm(_ _)m
Voteありがとうございます。