jQueryの$.ajaxや$.loadなどでファイルを読み込むと文字化けが発生する

jQueryの$.ajaxや$.loadなどでファイルを読み込むと文字化けが発生することがあります。

【JavaScript】

原因

jQueryの$.ajaxでは、UTF-8で読み込もうとするため、読み込むファイル内にマルチバイトを含み、かつファイルの文字コードがShift_JISである場合にこの現象が起こります。

回避方法

この不具合(バグ)は以下の方法で回避することができます。

overrideMimeTypeメソッドでMIMEタイプをオーバーライドする。

XMLHttpRequestオブジェクトのoverrideMimeTypeメソッドを使用して、MIMEタイプをオーバーライドすることで回避できます。

  • ※ IEについてはoverrideMimeTypeメソッドは10以降で対応されているので、IE10以前のブラウザではこの方法は使用できません。