Tomcat 5.x 以降での GET リクエストの文字化け対策

Tomcat 5.x 以降では、GET メソッドでデータを送信すると日本語の文字化けが起きる。GET メソッドを用いると request.setCharacterEncoding が無視されるためである。これを回避する方法は三つ。

  1. GET メソッドではなく POST メソッドを用いる
  2. GET メソッドで日本語を送信しない
  3. %TOMCAT_HOME%/conf/server.xml の Connector 要素に useBodyEncodingForURI = "true" を追加する

ただし基本は POST メソッドで送信するべきで、他の方法はお勧めできない。