setCharacterEncoding()問題

3月16日の日記へのコメントから。
Ja-Jakartaプロジェクトのメーリングリストで、このような情報があったようです。

結局,CoyoteのuseBodyEncodingForURI属性で制御することになったが, Norbertによると,このようなコンテナ依存の対応はサーブレットのコンテナ 間のポータビリティを破壊するので,Servlet Specificationで明確に規定す る必要があるとのことである.

議論の流れ次第では、Tomcat 5での対応(useBodyEncodingForURIの設定)は将来的に変わる可能性もありそうですね。結局、現状では、

  • Tomcat 5(5.0.16以降)では、server.xmlのConnecter定義の中でuseBodyEncodingForURIをtrueに設定するか、SetCharacterEncodingFilterを修正する。(ぼくは後者を採用)
  • Tomcat 4では、ServletRequest#setCharacterEncoding()はこれまで通りに使える。ただし4.1.29を除く。

という対処で正しいかな? 引き続きwatchする必要がありそうです。

sol164さん、コメントありがとうございました。