tomcat & MySQL で UTF-8 を使うには、まとめると下記が必要。
Tomcat
request
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"/>
response
responseに何か書く前に、先ず下記が必要。
response.setCharacterEncoding("UTF-8");