ショック

Tomcat 4.1.29/Tomcat 5.0.16で、HttpServletRequest#setCharacterEncoding()の仕様が変更されています!!
関連URL

簡単に書くと、setCharacterEncoding()がリクエストボディ部にしか適用されず、クエリーストリングで渡されるパラメータには適用されないという現象です。そ、そ、そんな仕様変更をいきなりやるなあーーーー!!
仕事で作っているWebアプリケーションの一部分でフォームのリクエストメソッドをPOSTからGETに変えたところ挙動が変わってしまい、調べていたら上記の情報を発見。ああ、半日つぶれましたよ。ヽ(`Д´)ノ ウワアーン!*1

怒りを鎮めるために、ちょっと休憩。

*1:なんで半日もかかったかというと、最初は「Strutsタグでパラメータを展開した時、マルチバイト文字がUTF-8でURLエンコードされる問題」とゴッチャになっていたんです。