首页 前端知识 js对url进行编码解码的三种方案,JS在url中如何传递参数或特殊符号

js对url进行编码解码的三种方案,JS在url中如何传递参数或特殊符号

2024-06-02 09:06:03 前端知识 前端哥 246 828 我要收藏

为什么要进行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=开心'
今天就写到这里啦~
  • 小伙伴们,( ̄ω ̄( ̄ω ̄〃 ( ̄ω ̄〃)ゝ我们明天再见啦~~
  • 大家要天天开心哦

欢迎大家指出文章需要改正之处~
学无止境,合作共赢

在这里插入图片描述

欢迎路过的小哥哥小姐姐们提出更好的意见哇~~

转载请注明出处或者链接地址:https://www.qianduange.cn//article/10528.html
标签
评论
发布的文章

无涯教程-HTML5 - 表单标签

2024-06-08 00:06:06

HTML5基础2

2024-06-07 23:06:19

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!