フリーランス チャレンジ!!

読者です 読者をやめる 読者になる 読者になる

フリーランス チャレンジ!!

週休4日制に俺はなる!

Ajax通信で日本語(SJIS)が文字化けする場合の対応

f:id:ksakae1216:20170209223613j:plain

 みなさん、コウタロウです!!

 

今日はタイトルについて。

 

 

Ajax通信で日本語が文字化け

現在のプロジェクトがStruts2使っていて、DBのデータを表示してます

最近では珍しく、文字コードがSJISでなければいけなくて、JSP、DBの文字コードもSJISにしてます

 

開発は順調に進んでたんだけど、1つだけ問題が

 

画面であるアクションを起こした時に非同期でAjax通信してメッセージを画面に表示するんだけど、文字化けしている

 

どうやら、Firefoxは大丈夫だけど、IEがダメみたい

 

対応方法

"beforeSend"でMimeTypeを上書きすると大丈夫!!

gist4835f62d1e6537958398a7f40603a6c8

 

"text/html"の部分はそれぞれ自分が使うものに変えてください

私はJSONでデータやりとりしてるので"application/json"に変えました

 

最後に

文字化けした場合、どこが悪いかわかんないですよね

 

通信で文字化けしてるのか?

サーバー側が悪いのか?

DBが悪いのか?

 

Ajax通信は"beforeSend"で始まる3行追加するだけなのでとりあえず手軽に試せますね