requestとresponse中国語の文字化けし問題のバックグラウンド処理方法
5690 ワード
request受信パラメータの中国語文字化けしの処理:
GET:
方法1:Stringの構造方法を使用する:
new String(request.getParameter(" name").getBytes("ISO-8859-1"), "UTF-8");
方法2:tomcat 7のデフォルトの符号化方式を修正し、server.xmlのポート番号の追加構成:
<Connector connectionTimeout="50000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>
POST:
方法1:requestのバッファの符号化を設定する:
request.setCharacterEncoding("UTF-8");
方法2:springの符号化フィルタを用いて、web.xmlに追加:
<filter>
<filter-name>CharacterEncodingfilter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilterfilter-class>
<init-param>
<param-name>encodingparam-name>
<param-value>UTF-8param-value>
init-param>
<init-param>
<param-name>forceEncodingparam-name>
<param-value>trueparam-value>
init-param>
filter>
<filter-mapping>
<filter-name>CharacterEncodingfilter-name>
<url-pattern>/*url-pattern>
filter-mapping>
response出力中国語の文字化けし問題:
文字ストリームの中国語出力:
方法1:
// .
response.setHeader("Content-Type","text/html;charset=UTF-8");
// response .
response.setCharacterEncoding("UTF-8");
方法2:使用を推奨する:
response.setContentType("text/html;charset=UTF-8");
バイトストリーム出力中国語:(実際には使用されません)
// :
ServletOutputStream outputStream = response.getOutputStream();
//
response.setHeader("Content-Type", "text/html;charset=UTF-8");
//
outputStream.write(" ".getBytes("UTF-8"));
ちなみにtomcat 8のデフォルト文字セットはutf-8です