js中三種URI編碼方式比較

2021-07-31 20:47:15 字數 1556 閱讀 9638

區別分析結論

資料傳遞常需要編碼後傳遞,接收還需反編譯,定義url:

var url = "'cs逍遙劍仙'&password='

19931128

'";

console.log(escape(url));// 編碼

console.log(unescape(escape(url)));// 解碼

結果

%27

console.log(encodeuricomponent(url));// 編碼

console.log(decodeuricomponent(encodeuricomponent(url)));// 解碼

結果

%91%e4%bb%99'%26password%3d'19931128'

console.log(encodeuri(url));// 編碼

console.log(decodeuri(encodeuri(url)));// 解碼

結果

'cs%e9%

80%8d%e9%81%a5%e5%

89%91%e4%bb%

99'&password='19931128'

三種方法都不會對 ascii 字母、數字和規定的特殊 ascii 標點符號進行編碼,其餘都替換為十六進製制轉義序列

【escape & unescape】

escape不編碼字元有69個:*,+,-,.,/,@,_,0-9,a-z,a-z
對字串全部進行轉義編碼,ecmascript v3 反對使用該方法,對url編碼勿使用此方法

【encodeuricomponent & decodeuricomponent】

encodeuricomponent不編碼字元有71個:!, ',(,),*,-,.,_,~,0-9,a-z,a-z
傳遞引數時需使用encodeuricomponent,組合的url才不會被#等特殊字元截斷

【encodeuri & decodeuri】

encodeuri不編碼字元有82個:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,a-z
進行url跳轉時可以整體使用encodeuri,如果uri中含分隔符如 ? 和 #,應使用encodeuricomponent

推薦使用encodeuricomponent

JS 三種URI編碼 解碼方式比較

資料傳遞常需要編碼後傳遞,接收還需反編譯,定義url var url cs逍遙劍仙 password 19931128 console.log escape url 編碼 console.log unescape escape url 解碼結果 27console.log encodeuricomp...

iOS中三種定位方式

每個手機基站都有乙個識別符號,iphone或3g ipad可以蒐集周圍所有收到訊號的基站和它們的識別符號,通過聯網傳送到蘋果雲端伺服器,再由伺服器根據這些基站的的位置資訊查詢並計算出當前位置,然後返回給手機。因為基站訊號輻射範圍大,所以誤差也大,在500公尺 幾公里.定位速度最快,耗電最少,誤差幾百...

js中三種物件意義

js中,可以將物件分為 內部物件 宿主物件 和 自定義物件 三種。內部物件 js中的內部物件包括array boolean date function global math number object regexp string以及各種錯誤類物件,包括error evalerror rangeer...