Javascript編碼之------ Jquery和js中的編碼解碼,重點:將中文字符串編碼為unicode編碼方法!!! 對比asp.net中記憶!!!


@下面是asp.net中的編碼轉換方法:

中文轉UnicodeHttpUtility.UrlEncodeUnicode(string str);
轉換后中文格式:"%uxxxx" 舉例:"_abc123" 轉換結果是:"%u67f3_abc123"

Unicode轉中文1HttpUtility.UrlDecode(string str);
str格式:"%uxxxx" ,舉例:"%u67f3_abc123"

Unicode轉中文2Regex.Unescape(string str);
str格式:"\uxxxx" ,舉例:"\u67f3_abc123"

 

@下面是Javascript中的編碼轉換方法:

 

1.window.escape()HttpUtility.UrlEncodeUnicode()編碼格式一樣:將一個漢字編碼為%uxxxx格式(unicode編碼)
不會被window.escape編碼的字符有:@ _ - . * / + 這與http://www.w3school.com.cn/js/jsref_escape.asp上的解釋不符合

 

2.window.encodeURIComponent()HttpUtility.UrlEncode()編碼格式一樣:將一個漢字編碼為%xx%xx%xx的格式(gbk編碼或者utf8編碼)

 

不會被window.encodeURIComponent編碼的字符有:'()*-._!~ 這與http://www.w3school.com.cn/js/jsref_encodeURIComponent.asp解釋相符合

 

不會被HttpUtility.UrlEncode編碼的字符有:'()*-._!相比較而言,HttpUtility.UrlEncodewindow.encodeURIComponent多一個 ~ 編碼

 

3.不會被window.encodeURI編碼的字符有-_.!*();/?:@&=$,# encodeURIComponent對比,發現encodeURI不對:;/?:@&=+$,#這些用於分隔 URI 組件的標點符號進行編碼

 

@Asp.Net編碼與JS編碼的區別:

 

1. 不會被HttpUtility.UrlEncodeUnicode編碼的字符與不會被HttpUtility.UrlEncode編碼的字符一樣,而escapeencodeURIComponent不編碼的字符不一樣

 

2.  HttpUtility.UrlEncodeHttpUtility.UrlEncodeUnicode會對/編碼,而escapeencodeURIComponent會對/編碼,encodeURI不會對/編碼

 

3.  HttpUtility.UrlEncode()HttpUtility.UrlEncodeUnicode()會把空格編碼為 +,而escapeencodeURIComponentencodeURI都會將空格編碼為%20

 

@為什么優先使用encodeURIComponent而不是escape?
  escape
法並不編碼字符+。而我們知道,在用戶提交的表單字段中,如果有空格,則會被轉化為+字符,而服務器解析的時候則會認為+號代表空格。由於這個缺陷,escape方法並不能正確地處理所有的非ASCII字符,你應當盡量避免使用escape方法,取而代之,你最好選擇 encodeURIComponent()方法。

 

 

 


免責聲明!

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



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