jQuery.ajax()で日本語が文字化けします。

以下のようなコードでajax通信を行うと、title, articleに日本語がセットされた際文字化けします。送信元のhtmlがShift_JISで書かれているので、beforeSendで明記すれば解決するかと思いましたが直りません。どうすれば解決できるでしょうか?

$.ajax({
beforeSend: function(xhr){
xhr.overrideMimeType("text/html;charset=Shift_JIS");
},
type: "POST",
url: "message_send.html",
data:{
"title": title,
"article": article
},
success:function(){
alert("success");
},
failure:function(){
alert("failure");
},
});

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2014/02/17 19:30:52

ベストアンサー

id:Lhankor_Mhy No.1

回答回数812ベストアンサー獲得回数232

 確認していただきたいのですが、そのリクエスト先でShift-JISのURLデコードをしているのではありませんか?
 もしそうであれば、jQueryのデフォルトエンコードを無効にして、自分でShift-JISでのURLエンコードを実装するしかないと思います。
 
 ググったところこのようなライブラリがあるようです。
http://www.junoe.jp/downloads/itoh/enc_js.shtml

他2件のコメントを見る
id:Lhankor_Mhy

失礼しました。processDataを指定しなくても、dataにstringを渡せばいいようです。

2014/02/17 19:03:32
id:imo_jo_chu

dataにstringを渡すようにかえたところ、うまくいきました!
ご教授いただきありがとうございました。

2014/02/17 19:30:43

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません