資料傳遞常需要編碼後傳遞,接收還需反編譯,定義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編碼方式比較](
js中三種URI編碼方式比較
區別分析結論 資料傳遞常需要編碼後傳遞,接收還需反編譯,定義url var url cs逍遙劍仙 password 19931128 console.log escape url 編碼 console.log unescape escape url 解碼結果 27console.log encode...
js 中編碼和解碼的三種方法
js對文字進行編碼涉及3個函式 escape,encodeuri,encodeuricomponent,相應3個解碼函式 unescape,decodeuri,decodeuricomponent,它們的區別如下 1 escape 函式 定義和用法 escape 函式可對字串進行編碼,這樣就可以在所...
jdbc statement三種方式的比較
我在整理jdbc打包寫乙個集合方便以後用的時候發現了這個問題,以前也沒有注意到下來研究了一翻 共同點 statement,preparedstatement和callablestatement都是介面 inte ce 不同點 statement介面提供了執行語句和獲取結果的基本方法 prepared...