JS がサーバーエンコード形式 gb2312 のファイルを取得すると、内容が文字化けします。ajax ネットワークリクエストは内部で XMLHttpRequest を使用するため、リクエスト前にエンコード形式を設定する必要がありますが、xhr.setRequestHeader("accept", " text/csv ;charset=gb2312,*/*"); は効果がありません。xhr.overrideMimeType("text/csv;charset=gb2312"); の設定のみが正しいです。コードは次のとおりです:
<span style="font-size:18px;">$.ajax({ type: "get", url:"http://7xnhdv.com1.z0.glb.clouddn.com/test1.csv", beforeSend: function(xhr) { //beforeSend定义全局变量 // xhr.setRequestHeader("accept", "text/csv;charset=gb2312,*/*"); xhr.overrideMimeType("text/csv;charset=gb2312"); }, success: function(xmlDoc, textStatus, xhr) { if(xhr.status == 200) { $('#view0').text(xmlDoc); } } } );</span>
overrideMimeType 関数は、サーバーに送信されたヘッダーをオーバーライドし、MIME タイプとして text/csv;charset=gb2312 を強制します。
ps: js で中国語の文字化けが表示される場合、またはページ上で文字化けが表示される場合の解決策
①.js ファイルで中国語が文字化けしてしまう
Javascript ファイル XX.js は、編集時および保存時のエンコード方式 (GBK など) と、ファイルを開くときのエンコード方式 (UTF-8 など) が保存時のエンコード方式と一致しない場合、中国語が文字化けします。が現れます。
解決策:
(1) エディターで開いて参照する場合、元のファイルのエンコードと一致するエンコード方式 (GBK など) を選択して表示すると、文字化けが発生しません。
(2)Eclipseのパッケージエクスプローラーで文字化けしたXX.jsを選択し、右クリックメニューのプロパティを選択し、テキストファイルのエンコーディングでXX.jsで編集保存する際のエンコーディング(GBKなど)を選択し、その後、正常に表示できます ;②WebサイトページのJavaScriptの中国語フィールドが文字化けしている
XX.js の中国語の文字は、Eclipse またはエディターで正常に表示されます。ページ上で XX.js を呼び出すと、実行後にページの結果の中国語フィールドに文字化けが表示されます。
解決策:
XX.js ファイルを参照しているページに、XX.js ファイルのエンコード方法を、XX.js ファイル自体 (GBK など) のエンコード方法と一致するように「表示」します。
おすすめ:
(1) Eclipse または Myeclipse を使用して XX.js を作成して編集する場合は、テキスト ファイルのエンコードを UTF-8 に変更してから編集し、保存することをお勧めします。
(2) テキストドキュメントなどのエディタを使用して、XX.js を編集して保存します。UTF-8 エンコードで保存することを推奨します。
(3)「表示」し、XX.jsを参照しているページにXX.jsファイルのエンコード方式UTF-8を追加します。
<script type="text/javascript" language="JavaScript" src="/js/XX.js" charset=“utf-8”></script>