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

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

时间:2023-10-14 09:44:55浏览次数:47  
标签:编码 xiaojin url 字符 js URL escape 特殊符号

为什么要进行url编码?

当你的URL里出现%2F 怎么办?JS在url中如何传递参数或者特殊符号呢?在url链接中会经常碰到一些%2F、%2B等特殊符号怎么解决呢?下面我们来了解一下:

  • 根据RFC标准,有些符号在URI中是不能直接传递的,要按照规定格式进行编码
  • 编码格式:%加字符的ASCII码,即一个百分号%,后面加上对应字符的ASCII(16进制)码值。举个栗子:空格的编码值是"%20"。

url特殊符号及编码.

 + URL 中+号表示空格 %2B
 空格 URL中的空格可以用+号或者编码 %20
 / 分隔目录和子目录 %2F
 ? 分隔实际的 URL 和参数 %3F
 % 指定特殊字符 %25
 # 表示书签 %23
 & URL 中指定的参数间的分隔符 %26
 = URL 中指定参数的值 %3D

怎么进行url编码和解码?

1. escape 和 unescape (不太常用)

注意事项

特别注意事项:escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z。

使用介绍

  • escape()不能直接用于URL编码,真正作用是返回一个字符的Unicode编码值。
  • escape()函数用于js对字符串进行编码
  • 采用unicode字符集对指定的字符串除0-255以外进行编码。
  • 所有的空格符、标点符号、特殊字符以及更多有联系非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。
  • 比如,空格符对应的编码是%20。

使用案例

var url = "http://localhost:8080/xiaojin?state=11&name=xiaojin&other=开心";
escape(url)
'http%3A//localhost%3A8080/xiaojin%3Fstate%3D11%26name%3Dxiaojin%26other%3D%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=%E5%BC%80%E5%BF%83'

3. encodeURIComponent 和 decodeURIComponent (常用)

注意事项

==特别注意事项: 这个比较好用哦,因为"; / ? : @ & = + $ , #",这些统统会被编码。 ==

使用介绍

  • 我一般用这个搞参数传递
  • 它用于对URL的组成部分进行个别编码,而不用于对整个URL进行编码。
  • 采用UTF-8编码格式转化成escape格式的字符串。
  • 参数包含特殊字符可能会造成间断。

使用案例

var url = "http://localhost:8080/xiaojin?state=11&name=xiaojin&other=开心";
encodeURIComponent(url)
'http%3A%2F%2Flocalhost%3A8080%2Fxiaojin%3Fstate%3D11%26name%3Dxiaojin%26other%3D%E5%BC%80%E5%BF%83'

今天就写到这里啦~

  • 小伙伴们,( ̄ω ̄( ̄ω ̄〃 ( ̄ω ̄〃)ゝ我们明天再见啦~~
  • 大家要天天开心哦

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

在这里插入图片描述

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

标签:编码,xiaojin,url,字符,js,URL,escape,特殊符号
From: https://www.cnblogs.com/sugartang/p/17755867.html

相关文章

  • 10.9 ,jsp连接数据库完成课程信息导入
    跟随教学视频安装好mysql,jdbc,navicat,apacheTomocat,为tomocat配好环境变量,在idea中完成配置工件,连入数据库驱动等可以通过idea去查看数据库,也可以借助navicat,以下是代码部分,两个web下的jsp文件,一个负责HTML的页面实现,另一个负责数据库的内容添加以及判断。<%@pageimport="......
  • 用js当页面大小改变时改变字体大小
    商务合作<!DOCTYPEhtml><html><bodyonresize="s()"><divstyle="width:25%;color:red;"id='demo'><spanid="zt">商务合作</span></div></body></html><script>......
  • cefsharp 执行 js 并返回结果
    privateasyncvoidbutton1_Click(objectsender,EventArgse){varresponse=awaitbrowser.EvaluateScriptAsync("document.title");if(response.Success)MessageBox.Show(response.Result?.ToString());response=awaitbrowser.......
  • URI、URL 和 URN 之间的区别是什么?
    内容来自DOC[https://q.houxu6.top/?s=URI、URL和URN之间的区别是什么?](https://q.houxu6.top/?s=URI、URL和URN之间的区别是什么?)URL、URI和URN之间的区别是什么?根据RFC3986:URI可以分为定位器、名称或两者兼有。术语"统一资源定位符"(URL)指的是除了标识资源......
  • JS加密/解密之webpack打包代码逆向
    Webpack是一个强大的打包工具,能够将多个文件打包成一个或多个最终的文件。然而,将已经经过打包的代码还原回原始源代码并不是一件直接的事情,因为webpack打包的过程通常会对代码进行压缩、混淆和优化,丢失了部分变量名和代码结构的信息。因此,完全还原打包前的源码可能并不现实。但......
  • DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): conda.anaconda.o
     001、问题conda安装samtools出现如下问题:(base)[root@pc1home]#condainstallsamtools-cbioconda 002、解决方法 ......
  • js 下载csv
    exportToExcel(){varfileName="最新质量等级成本";constcsv=this.convertToCSV(this.datas);//将数据转换为CSV格式constblob=newBlob([csv],{type:'text/csv;charset=utf-8;'});//创建Blob对象constur......
  • burpsuite靶场----目录遍历----斜杠双重url编码绕过
    burpsuite靶场----目录遍历----斜杠双重url编码绕过靶场地址https://portswigger.net/web-security/file-path-traversal/lab-superfluous-url-decode正式开始1.随便打开一个图片2.对'/'进行双重url编码,即为%252f,然后访问..%252f..%252f..%252fetc/passwd3.在bp中可以查......
  • Python JSON 库对 UTF8 字符的处理方式分析
    默认情况在使用json模块的json.dump时,默认会将非ASCII字符(中文字符等)进行Unicode转义,保证最终文件只有ASCII字符。例如下述代码:importjsonwithopen("text.json","w")asf:data={'1':111,'2':"你好",'3':"Hello",�......
  • json转excle代码
    一、需要安装pandas二、我的json文件内容[{"name":"John","age":28,"city":"NewYork"},{"name":"Alice","age":24,"city":"SanFrancisco"},{"name":"Bob......