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";2. encodeuri 和 decodeuri
把uri字串採用utf-8編碼格式轉化成escape各式的字串。
encodeuri不編碼字元有82個:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,a-z
encodeuri()用於整個url轉碼,而decodeuri()用於整個url解碼
var url1 = "http://localhost:8080/pro?a=1&b='張三'&c=aaa";decodeuri(url2) --> "http://localhost:8080/pro?a=1&b='張三'&c=aaa";
3. encodeuricomponent 和 decodeuricomponent
與encodeuri()的區別是,它用於對url的組成部分進行個別編碼,而不用於對整個url進行編碼。
因此,"; / ? : @ & = + $ , #",這些在encodeuri()中不被編碼的符號,在encodeuricomponent()中統統會被編碼。至於具體的編碼方法,兩者是一樣。把uri字串採用utf-8編碼格式轉化成escape格式的字串。
encodeuricomponent() 用於引數的傳遞,引數包含特殊字元可能會造成間斷。
例1
var url = "http://localhost:8080/pro?a=1&b=張三&c=aaa";例2
var url = "http://localhost:8080/pp?a=1&b="+ paramurl,var paramurl = "http://localhost:8080/aa?a=1&b=2&c=3";應該使用encodeuricomponent()進行轉碼encodeuricomponent(paramurl) --> "http://localhost:8080/pp?a=1&b=http%3a%2f%2flocalhost%3a8080%2faa%3fa%3d1%26b%3d2%23%26c%3d3"文章參考:
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進行轉碼與解碼
用途 用於js對字串編碼 escape 用於整個url編碼 encodeurl 用於引數傳遞編碼 encodeuricomponent 詳解 1.escape 和 unescape escape 不能直接用於url編碼,它的真正作用是返回乙個字元的unicode編碼值。採用unicode字符集對指定...