Tomcat5.x以降のデフォルトの設定では、getで日本語を送信すると受信した文字が化けてしまいますが、conf/server.xmlのConnector要素にuseBodyEncodingForURI="true"の属性を指定することによって、文字が化けないようにすることができます。
<Connector
port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="true" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"
useBodyEncodingForURI="true"
/>
port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="true" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"
useBodyEncodingForURI="true"
/>
投稿:竹形 誠司[takegata]/2008年 01月 19日 23時 19分
/更新:2008年 01月 19日 23時 23分
補足
by 竹形 誠司[takegata]
↑の設定をした場合でも、URLに日本語をそのまま含めることはできません。
(URLに日本語が含まれている場合に、ブラウザが気を利かせてエンコーディングしてくれる場合もあるようですが、HTMLの規格としては正しくありません)
<A HREF="test.jsp?str=<%=URLEncoder.encode("日本語")%>">
のように、java.net.URLEncoderでエンコードする必要があります。(URLに日本語が含まれている場合に、ブラウザが気を利かせてエンコーディングしてくれる場合もあるようですが、HTMLの規格としては正しくありません)
投稿:竹形 誠司[takegata]/2008年 04月 29日 01時 17分
/更新:2008年 06月 03日 15時 42分
JSPのpageEncodingがutf-8の場合は、useBodyEncodingForURI="true"の設定は要らないみたいです。
投稿:竹形 誠司[takegata]/2008年 04月 29日 01時 19分
/更新:2008年 06月 03日 15時 42分