俺#

新潟市でIT業を営むおっさんのブログ。

Tomcatで日本語のGETパラメータが化ける件

超〜〜〜〜〜〜〜久々にTomcatServlet。ウゼー!PHPにしようぜ〜(ぉい

まぁ、UTF-8で渡したGETパラメータが文字化けして困るというので、設定の見直しをちょっとばかし手伝っただけなんだが。ググッったら色々出てきた。

http://d.hatena.ne.jp/oreflow/20070828#1188296515
http://www.atmarkit.co.jp/fjava/rensai3/mojibake03/mojibake03.html
http://d.hatena.ne.jp/t-katochin/20070224/1172319332

最近のTomcatはrequest.setCharacterEncoding()してもURIに含まれる文字列(GETパラメータ)には適用されないんだって。まとめると対処方法は以下の2つ。

1)server.xmlに「useBodyEncodingForURI="true"」を指定し、さらにrequest.setCharacterEncoding("UTF-8")する。

2)server.xmlに「URIEncodeing="UTF-8"」を指定する。

柔軟性がある...というか現実的に世の中のあらゆるブラウザの相手をするには1)しかなさそーな感じだが、今回はクライアントが単なるアプリでUTF-8以外ありえないので2)で対応。相変わらず文字コードの問題はなくなりませんな(^^;