My Photo

« 「FXは中産階級のパチスロ」か? #fx | Main | サーブレット・JSPメモ005:フォワード・インクルード・リダイレクト »

February 10, 2012

サーブレット・JSPメモ004:GETリクエストのパラメータの文字化け

Tomcat5以降ではGETリクエストにおいてURLでエンコードされたパラメータのデコードは、doGet()で

request.setCharacterEncoding("UTF-8");	// UTF-8の場合
とやっても無視されて ISO8859-1 が使われる。
※POSTは指定した文字エンコーディングでデコードされる。

setCharacterEncoding()が効くようにするには server.xml で

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1"
 redirectPort="8443" />
に useBodyEncodingForURI="true" を加えて
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1"
 redirectPort="8443" useBodyEncodingForURI="true" />
と変更すればよい。

request.setCharacterEncoding(<文字コード>) の呼び出しは、requestからパラメータを取得する前にしなければならない。
doGet() や doPost() の中だけではなく、たとえばフィルタで

value = request.getParameter("key");
とやったら、この後の doGet() や doPost() で request.setCharacterEncoding(<文字コード>) を呼んでも ISO8859-1 でデコードされてしまう。

参考ページ:Tomcat5/6のGETリクエストで文字化け - @”かたち開発の開発日記”

« 「FXは中産階級のパチスロ」か? #fx | Main | サーブレット・JSPメモ005:フォワード・インクルード・リダイレクト »

サーブレット・JSP」カテゴリの記事

Comments

Post a comment

(Not displayed with comment.)

TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/26461/53951026

Listed below are links to weblogs that reference サーブレット・JSPメモ004:GETリクエストのパラメータの文字化け:

« 「FXは中産階級のパチスロ」か? #fx | Main | サーブレット・JSPメモ005:フォワード・インクルード・リダイレクト »

April 2017
Sun Mon Tue Wed Thu Fri Sat
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            
無料ブログはココログ

日本blog村

  • にほんブログ村 IT技術ブログへ
  • にほんブログ村 アニメブログへ
  • にほんブログ村 サッカーブログ アルビレックス新潟へ

好きな音楽家

メモ

XI-Prof