js uri解碼 JS中對URL進行轉碼與解碼

2021-10-13 03:49:29 字數 1545 閱讀 5580

1. escape 和 unescape

escape()不能直接用於url編碼,它的真正作用是返回乙個字元的unicode編碼值。

採用unicode字符集對指定的字串除0-255以外進行編碼。所有的空格符、標點符號、特殊字元以及更多有聯絡非ascii字元都將被轉化成%xx格式的字元編碼(xx等於該字元在字符集表裡面的編碼的16進製制數字)。比如,空格符對應的編碼是%20。

escape不編碼字元有69個:*,+,-,.,/,@,_,0-9,a-z,a-z。

escape()函式用於js對字串進行編碼,不常用。

var url = "http://localhost:8080/pro?a=1&b=張三&c=aaa";escape(url) --> http%3a//localhost%3a8080/pro%3fa%3d1%26b%3d%u5f20%u4e09%26c%3daaa

2. encodeuri 和 decodeuri

把uri字串採用utf-8編碼格式轉化成escape各式的字串。

encodeuri不編碼字元有82個:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,a-z

encodeuri()用於整個url編碼

var url = "http://localhost:8080/pro?a=1&b=張三&c=aaa";

3. encodeuricomponent 和 decodeuricomponent

與encodeuri()的區別是,它用於對url的組成部分進行個別編碼,而不用於對整個url進行編碼。

因此,"; / ? : @ & = + $ , #",這些在encodeuri()中不被編碼的符號,在encodeuricomponent()中統統會被編碼。至於具體的編碼方法,兩者是一樣。把uri字串採用utf-8編碼格式轉化成escape格式的字串。

encodeuricomponent() 用於引數的傳遞,引數包含特殊字元可能會造成間斷。

例1var url = "http://localhost:8080/pro?a=1&b=張三&c=aaa";

例2var url = "http://localhost:8080/pp?a=1&b="+paramurl,

應該使用encodeuricomponent()進行轉碼

文章參考:

JS中對URL進行轉碼與解碼

1.escape 和 unescape escape 不能直接用於url編碼,它的真正作用是返回乙個字元的unicode編碼值。採用unicode字符集對指定的字串除0 255以外進行編碼。所有的空格符 標點符號 特殊字元以及更多有聯絡非ascii字元都將被轉化成 xx格式的字元編碼 xx等於該字元...

JS中對URL進行轉碼與解碼

1.escape 和 unescape escape 不能直接用於url編碼,它的真正作用是返回乙個字元的unicode編碼值。採用unicode字符集對指定的字串除0 255以外進行編碼。所有的空格符 標點符號 特殊字元以及更多有聯絡非ascii字元都將被轉化成 xx格式的字元編碼 xx等於該字元...

JS中對URL進行轉碼與解碼

1.escape 和 unescape escape 不能直接用於url編碼,它的真正作用是返回乙個字元的unicode編碼值。採用unicode字符集對指定的字串除0 255以外進行編碼。所有的空格符 標點符號 特殊字元以及更多有聯絡非ascii字元都將被轉化成 xx格式的字元編碼 xx等於該字元...