2010年4月9日金曜日

jQueryからJSP/ServletなページにAjaxリクエストを投げると日本語が文字化けする。

結構はまりました。

JSP側は、
<jsp:directive.page language="java" contentType="text/html; charset=UTF-8" />
という状態で、jQueryから
$.ajax({...})
すると文字化け。

正確には、GETの場合は、IE、Firefox共に文字化けし、POSTの場合は、IEのみ文字化け。
Firebugで確認する限りでは、文字化けしていないみたい。

色々やってみると、$.ajax({...})のOptionで
,contentType: "application/x-www-form-urlencoded; charset=UTF-8"
と指定することで文字化けが解消された。

指定しない場合は、charsetの指定はされないようなので、これを明示することで解決。
# 何故わざわざ指定する必要があるのかは、ちょっと腑に落ちないけど。。

0 件のコメント:

コメントを投稿