doRequest() などでリクエストを扱う前に、先ず
request.setCharacterEncoding("UTF-8");
を実行し、form のデータの解釈時の encoding を指定しなければならない。
さらに GET での query parameter についても同様にするには、server.xml の Connector
の設定に useBodyEncodingForURI="true" が必要なのだそうだ。(これはまだ未確認)
server.xml
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" useBodyEncodingForURI="true"/> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" useBodyEncodingForURI="true"/>