为什么要进行url编码?
当你的URL里出现/ 怎么办?JS在url中如何传递参数或者特殊符号呢?在url链接中会经常碰到一些/、+等特殊符号怎么解决呢?下面我们来了解一下:
- 根据RFC标准,有些符号在URI中是不能直接传递的,要按照规定格式进行编码
- 编码格式:%加字符的ASCII码,即一个百分号%,后面加上对应字符的ASCII(16进制)码值。举个栗子:空格的编码值是" "。
url特殊符号及编码.
+ URL 中+号表示空格 + 空格 URL中的空格可以用+号或者编码 / 分隔目录和子目录 / ? 分隔实际的 URL 和参数 ? % 指定特殊字符 % # 表示书签 # & URL 中指定的参数间的分隔符 & = URL 中指定参数的值 =
复制
怎么进行url编码和解码?
1. escape 和 unescape (不太常用)
注意事项
特别注意事项:escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z。
使用介绍
- escape()不能直接用于URL编码,真正作用是返回一个字符的Unicode编码值。
- escape()函数用于js对字符串进行编码
- 采用unicode字符集对指定的字符串除0-255以外进行编码。
- 所有的空格符、标点符号、特殊字符以及更多有联系非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。
- 比如,空格符对应的编码是 。
使用案例
var url = "http://localhost:8080/xiaojin?state=11&name=xiaojin&other=开心"; escape(url) 'http://localhost:8080/xiaojin?state=11&name=xiaojin&other=%u5F00%u5FC3'
复制
2. encodeURI 和 decodeURI (不太常用)
注意事项
==特别注意事项: encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z ==
使用介绍
把URI字符串采用UTF-8编码格式转化成escape各式的字符串。
encodeURI()一般用于整个url编码
使用案例
var url = "http://localhost:8080/xiaojin?state=11&name=xiaojin&other=开心"; encodeURI(url) 'http://localhost:8080/xiaojin?state=11&name=xiaojin&other=开心'
复制
3. encodeURIComponent 和 decodeURIComponent (常用)
注意事项
==特别注意事项: 这个比较好用哦,因为"; / ? : @ & = + $ , #",这些统统会被编码。 ==
使用介绍
- 我一般用这个搞参数传递
- 它用于对URL的组成部分进行个别编码,而不用于对整个URL进行编码。
- 采用UTF-8编码格式转化成escape格式的字符串。
- 参数包含特殊字符可能会造成间断。
使用案例
var url = "http://localhost:8080/xiaojin?state=11&name=xiaojin&other=开心"; encodeURIComponent(url) 'http://localhost:8080/xiaojin?state=11&name=xiaojin&other=开心'
复制
今天就写到这里啦~
- 小伙伴们,( ̄ω ̄( ̄ω ̄〃 ( ̄ω ̄〃)ゝ我们明天再见啦~~
- 大家要天天开心哦
欢迎大家指出文章需要改正之处~
学无止境,合作共赢