Tomcat4.xからTomcat5.x(今回は5.5.17)に移行した際、文字化けに当ったのでログ。
Tomcat5.xになってから、デフォルトでGETパラメータのURIのエンコーディングにutf-8を利用するようになっているようだ。なので[TOMCAT_HOME]/conf/server.xmlのConnector要素で
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" useBodyEncodingForURI="true"/>
とすれば良いらしいが、今回はこれでは直らなかった。
ここを参考に、
受け取る側のJSPで
[変更前]
request.setCharacterEncoding("UTF-8");
String keyword = request.getParameter("q");
[変更後]
// request.setCharacterEncoding("UTF-8");
String keyword = new String(request.getParameter("q").getBytes("ISO-8859-1"), "UTF-8");
としたら直った。