javascript中文亂碼問題分析及解決方案


引用外部js亂碼

在web開發中我們一般都會不可避免的使用js。我們可以將js代碼直接放在頁面中即通過內部使用js。但是為了給頁面良好的"瘦身"我們一般都會將js代碼放在外部,然后通過src引用。這個時候我們就需要注意一個問題:編碼問題。如果web頁面也js采用不同編碼,這個時候就會出現亂碼。(內部使用js不需要注意編碼問題,因為他們采用的是同一種編碼)

對於大多數的web頁面,我們一般都是使用如下兩種編碼:UTF-8、GB2312。所以我們只需要統一頁面和js編碼就可以解決亂碼問題:
對於GBK頁面引用編碼為UTF-8編碼的JavaScript文件如果出現亂碼問題,可以使用下面的代碼來解決

<script type=”text/javascript” src=”test.js” charset=”utf-8″></script> 

同樣在UTF-8頁面中引入編碼為GBK的JavaScript文件亂碼問題了,可以使用如下方式:

<script type=”text/javascript” src=”test.js” charset=”gb2312″></script> 

此方法是對於在js文件中出現漢字中文,以及其他容易造成在GBK與UTF-8編碼錯誤字符的時候使用,

注:Web頁面和js文件最好是使用同一種編碼,對於純英文的就不需要了,如果編碼已經統一,引入的js文件中文依然亂碼,則加入charset=”″聲明就好。

javascript中的3個編碼函數

   escape/unescape

    除了ASCII 字母、數字和特定的符號外,對傳進來的字符串全部進行轉義編碼;

    因此如果想對URL編碼,最好不要使用此方法;

    escape()適合對url的參數進行編碼。

  encodeURI/decodeURI

  用於編碼整個URL,因為URL中的合法字符都不會被編碼轉換;

    進行url跳轉時可以整體使用encodeURI。

    例如:Location.href=encodeURI("http://www.XX.com/Product/ProductShow.aspx?pid=468&SecondClass=35");

  encodeURIComponent/decodeURIComponents

    對url的參數編碼,特別在參數也是一個url的情況,如果不編碼會影響整個url跳轉。

    例如:document.write('<a href="http://passport.baidu.com/?logout&aid=7&

    u='+encodeURIComponent("http://cang.baidu.com/bruce42")+'">退出</a>');

    在向后端傳值時,參數存在特殊字符時,我們一般使用這種編碼方法

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM