js字符編碼函數區(qū)別分析
更新時間:2011年12月28日 23:03:29 作者:
js對文字編碼有3個函數: escape,encodeURI,encodeURIComponent, 對應的解碼函數:unescape,decodeURI,decodeURIComponent
1、escape對ansi碼0-255以外的字符進行編碼輸出%u****格式即unicode值,escape 方法返回一個包含了 charstring 內容的字符串值( Unicode 格式)。所有空格、標點、重音符號以及其他非 ASCII 字符都用 %xx 編碼代替,其中 xx 等于表示該字符的十六進制數。例如,空格返回的是 "%20"
escape不編碼字符有69個:*,+,-,.,/,@,_,0-9,a-z,A-Z
2、encodeURI類似escape,用于地址欄編碼
encodeURI不編碼字符有82個:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
3、encodeURIComponent用于地址欄編碼。將文本字符串編碼為一個統(tǒng)一資源標識符 (URI) 的一個有效組件。它是將中文、韓文等特殊字符轉換成utf-8格式的url編碼,如果你的頁面編碼是gb2312的話,服務器端接收的將是亂碼.
encodeURIComponent不編碼字符有71個:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z
所以js使用數據時可以使用escape,對于地址欄數據,最好用encodeURIComponent進行編碼。
escape不編碼字符有69個:*,+,-,.,/,@,_,0-9,a-z,A-Z
2、encodeURI類似escape,用于地址欄編碼
encodeURI不編碼字符有82個:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
3、encodeURIComponent用于地址欄編碼。將文本字符串編碼為一個統(tǒng)一資源標識符 (URI) 的一個有效組件。它是將中文、韓文等特殊字符轉換成utf-8格式的url編碼,如果你的頁面編碼是gb2312的話,服務器端接收的將是亂碼.
encodeURIComponent不編碼字符有71個:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z
所以js使用數據時可以使用escape,對于地址欄數據,最好用encodeURIComponent進行編碼。

