url=encodeURI(url);注意是整个URL
重点内容
1.编码后在全世界范围内才可以使用
2.某些操作系统是没有不支持中文字符的
3.比如在参数中带有空格的话,传递参数时就会发生错误,
而用URL编码过以后,空格变成了%20这样就不会发生错误了;
4.另外中文字经编码后全是怪符号,有利于保密。
escape()返回一个字符的Unicode编码值。
不会被此方法编码的字符: @ * / +
除了ASCII字母、数字、标点符号“@ * _ + - . /”以外,对其他所有字符进行编码。
在\u0000到\u00ff之间的符号被转成%xx的形式,其余符号被转成%uxxxx的形式。
注意:
首先,无论网页的原始编码是什么,一旦被Javascript编码,就都变为unicode字符。
也就是说,Javascipt函数的输入和输出,默认都是Unicode字符。
Unicode(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。
Unicode 是为了解决传统的字符编码方案的局限而产生的,
它为每种语言中的每个字符设定了统一并且唯一的二进制编码,
以满足跨语言、跨平台进行文本转换、处理的要求。
编码:
console.log(escape("春节")); %u6625%u8282
在Unicode字符集中,
“春”是第6625个(十六进制)字符,“节”是第8282个(十六进制)字符
解码:
console.log(unescape("%u6625%u8282")); 春节
encodeURI() 返回编码为有效的统一资源标识符 (URI) 的字符串。
不会被此方法编码的字符:! @ # $ & * ( ) = : / ; ? + '
编码后,它输出符号的utf-8形式,并且在每个字节前加上%。
console.log(encodeURI("春节")); %E6%98%A5%E8%8A%82
console.log(decodeURI("%E6%98%A5%E8%8A%82")); 春节
encodeURIComponent()
与encodeURI()的区别是,它用于对URL的组成部分进行个别编码,
而不用于对整个URL进行编码。
这些在encodeURI()中不被编码的符号,
在encodeURIComponent()中统统会被编码。
至于具体的编码方法,两者是一样。
编码:
encodeURIComponent("春节");
解码:
decodeURIComponent("%E6%98%A5%E8%8A%82");
<script type="text/javascript">
console.log("春节:"+ escape("春节"));
console.log("%u6625%u8282:"+ unescape("%u6625%u8282"));
console.log("春节:"+ encodeURI("春节"));
console.log("%E6%98%A5%E8%8A%82:"+ decodeURI("%E6%98%A5%E8%8A%82"));
console.log("春节:"+ encodeURIComponent("春节"));
console.log("%E6%98%A5%E8%8A%82:"+ decodeURIComponent("%E6%98%A5%E8%8A%82"));
</script>