原文地址:https://segmentfault.com/a/1190000037559131
作者:Fw恶龙
本文首发于:思否
JavaScript中的几种方法
1. escape(不推荐使用)
- 不对 ASCII 字母、数字进行编码
- 不对 *@-_+./ 进行编码
- 其他所有的字符都会被转义序列替换
- 返回一个字符的Unicode编码值,在u0000到u00ff之间的符号被转成%xx的形式,其余符号被转成%uxxxx的形式
- 对应的解码函数是unescape()
2. encodeURI
- 不对 ASCII 字母、数字进行编码
- 不对 -_.!~*'();/?:@&=+$,# 这20个ASCII 标点符号进行编码
- 其他所有的字符都会被转义序列替换
- 输出符号的utf-8形式,并且在每个字节前加上%
- 对应的解码函数是decodeURI()
3. encodeURIComponent
- 不对 ASCII 字母、数字进行编码
- 不对 -_.!~*'() 这9个ASCII 标点符号进行编码
- 其他所有的字符都会被转义序列替换
- 输出符号的utf-8形式,并且在每个字节前加上%
- 对应的解码函数是decodeURIComponent()
应用场景
- 当只需要对链接进行简单编码(即:链接的参数中不包含-_.!~*'();/?:@&=+$,#)只需要使用encodeURI
- 当链接中所带参数含有特殊符号时(如:?name=P&G、?src=https://segmentfault.com)这时我们希望等号右边的参数被完全编码,需对参数单独使用encodeURIComponent,然后再拼接成完整的链接
- 设置cookie时先对key和value进行encodeURIComponent编码
- 当需要取链接中的参数时,使用decodeURIComponent进行解码
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。