- 追加された行はこの色です。
- 削除された行はこの色です。
*SpringMVCでGETで日本語のパラメータを送信したらサーバ側で文字化けしたのの対応 [#j320aab9]
SpringMVCでGETで日本語のパラメータを送信したらサーバ側で文字化けしたのの対応です。
***web.xmlのfilter設定 [#o54971b5]
とりあえず、SpringMVC導入したら、プロジェクトのweb.xmlに以下のfilter設定を追加します。
<!-- マルチバイト対応:始まり -->
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- マルチバイト対応:終わり -->
このfilter設定は、filterの設定の一番最初に入れるのがよいです。
しかし、これだけではGETで日本語パラメータを送った場合に文字化けします。
原因は、URIEncodeがデフォルトだと「ISO-8859-1」であり、URIエンコードされているパラメータはデフォルトで「ISO-8859-1」にデコードされてしまうからです。
※参考:tomcat7のマニュアルです。
-http://tomcat.apache.org/tomcat-7.0-doc/config/http.html#Common_Attributes
従って、以下の設定追加が必要となります。
***server.xmlのConnectorにURIEncodingパラメータを追加 [#ofe33e54]
以下のパラメータをコネクタの属性に追加することで対処出来ます。
URIEncoding="UTF-8"
なお、Connector設定は、通常、「HTTP:8080」ポートと、「AJP:8009」ポートの2ポートの設定がされているので、必要なConnectorすべての設定する必要があります。