首頁 > web前端 > js教程 > 主體

解決JS請求伺服器gbk檔案亂碼的問題_javascript技巧

WBOY
發布: 2016-05-16 15:36:23
原創
1462 人瀏覽過

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作用將覆蓋傳送給伺服器的頭部,強制text/csv;charset=gb2312作為 mime-type。

ps:js中文顯示亂碼或在頁面顯示亂碼解決方法

 ①.js 檔案中文顯示亂碼

Javascript檔案XX.js編輯儲存時有一種編碼方案(如GBK),當開啟檔案的時候所用的編碼(如UTF-8)和儲存時的編碼方案不一致時,則會出現中文顯示亂碼。

解:

(1) 用編輯器開啟瀏覽的時候,選擇和原始檔案編碼(如GBK)一致的編碼方式查看,則不會出現亂碼;

(2)在eclipse中的package explorer中選取亂碼的XX.js,右鍵選單中選擇properties,在Text file encoding中選擇與XX.js編輯儲存時的編碼(如GBK),則可以正常顯示;

②網站頁面中JavaScript中中文欄位亂碼

在eclipse或編輯器中XX.js中中文顯示正常,在頁面呼叫XX.js,執行後頁面結果中中文欄位顯示亂碼。

解:

在引用XX.js的頁面上「顯示」加上XX.js檔案的編碼方式,使之與XX.js檔案的本身的編碼方式(如GBK)保持一致。

建議:

(1)用Eclipse或Myeclipse新建XX.js,進行編輯時,建議先將Text file encoding改為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>
登入後複製
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板