GETリクエスト時にパラメータで日本語を渡す時の覚書

エンコード問題はなんども躓いては忘れたころにまた発生するので、覚書としてエントリに残しておく。


通常httpリクエストでフォーム内容を送信するときはPOSTメソッドを使うが、何かの理由でGETメソッドを使わなければいけない時がある。

私の場合は検索フォームから検索した結果を表示するページのページングリンクがそれにあたる。

< 1 2 3 4 5>

↑こんな感じのやつ

この場合は

<a href="/test?searchword=hogehoge">2</a>

みたいに書くことになるが、このhogehogeが日本語の場合はURLエンコードしなければいけない。
"ほげほげ"を検索した場合は

<a href="/test?searchword=%82%d9%82%b0%82%d9%82%b0">2</a>

みたいに。


これをローカルで試してみようとtomcatを起動して8080ポートで試してみると文字化けして表示されない。
TomcatのURLパラメータ文字化け - 人類みんなごくつぶし
にあるように正しくデコードされないのだ。

なので


           maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
           enableLookups="false" redirectPort="8443" acceptCount="100"
           debug="0" connectionTimeout="20000" 
           disableUploadTimeout="true" 
           useBodyEncodingForURI="true"
/>

tomcatに設定して回避した。