URL传参时,参数包含有特殊字符(%、#、&)的处理方法

这篇具有很好参考价值的文章主要介绍了URL传参时,参数包含有特殊字符(%、#、&)的处理方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题描述

uniapp项目中页面跳转时,通过url传参,参数为一个包含特殊的字符的对象并内容比较多,导致不能正常传参


原因分析:

1、有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了。编码的格式为:%+字符的ASCII码,即一个百分号%,后面跟对应字符的ASCII(16进制)码值。例如 空格的编码值是"%20"。 
2、url参数有长度限制,参数太长就会显示不全文章来源地址https://www.toymoban.com/news/detail-679455.html


解决方案:

  1.  参照上面特殊字符对应的编码,使用replace加正则替换
  2. 参数为对象时,使用JSON.stringify()转换成字符串,页面接收时再使用JSON.parse()转换成对象
  3. 参数比较多时且内容复杂使用encodeURIComponent() 转码,decodeURIComponent() 解码,参数需要先JSON.stringify()再转码,页面接受先将参数解码再使用JSON.parse()
let obj = this.list[index] // obj为一个对象内容比较多且包含了特殊字符

1、先替换参数中包含的特殊符号

let formatObj = obj.replace(/\%/g,"%25")
formatObj = obj.replace(/\#/g,"%23")

formatObj = obj.replace(/\&/g,"%26")

formatObj = obj.replace(/\?/g,"%3F")

2、再将参数进行解码再传参        
uni.navigate To({
    url:'/pages/list/detail?item=' + encodeURIComponent(JSON.stringify(formatObj))
})

// 接收页面
onLoad (option) {
    this.info = JSON.parse(decodeURIComponent(option.item))
}

到了这里,关于URL传参时,参数包含有特殊字符(%、#、&)的处理方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Nginx配置 转发URL中包含特殊字符

    Nginx经常被用来作为代理服务器,可以有效的避免跨域问题。 老项目需要对接一个新的服务,但是存在跨域问题,然后就配置了一个代理 可是突然在某天,新接口出现了异常。接口报了400错误。 然后定位发现新接口url比较特殊还不能修改,在其他的地方也用了,整个URL中包

    2024年02月05日
    浏览(32)
  • SpringCloud + SpringGateway 解决Get请求传参为特殊字符导致400无法通过网关转发的问题

    title: “SpringCloud + SpringGateway 解决Get请求传参为特殊字符导致400无法通过网关转发的问题” createTime: 2021-11-24T10:27:57+08:00 updateTime: 2021-11-24T10:27:57+08:00 draft: false author: “Atomicyo” tags: [“tomcat”] categories: [“java”] description: “SpringCloud + SpringGateway 解决Get请求传参为特殊字符导致

    2024年02月07日
    浏览(32)
  • postman请求参数中包含特殊字符问题

    今天使用postman做测试时发现了一个问题,我的参数传递到后台时,加号变成了空格研究了一番,最成功找到了原因。 首先在postman中,如果参数是填在params模块中时,参数都是会拼接在url后面的。 因为我们的参数带有特殊字符,且参数拼接到了url中, 所以特殊字符被转义了

    2024年02月11日
    浏览(33)
  • 数组排序 sort() 方法 (映射对含有大小写的字符串进行排序)

    结论先行: sort() 方法: 用于对数组元素进行 排序 ,默认升序。如果指明了参数,那数组会按照 比较函数 的返回值进行排序。    sort() 方法比较两个值时,将值发送给比较函数,根据返回的(负、零、正)值对值进行排序。 举例,a 和 b 两个将要被比较的元素: 如果 a-

    2024年04月25日
    浏览(24)
  • Mybatis映射文件 — 常用标签及特殊字符的处理

    目录 一、Mybatis映射文件 — resultMap标签 (1)新建一个Teacher类,如下 (2)新建一个TeacherMapper持久层接口 (3)新增TeacherMapper.xml  Mybatis映射文件 (4)新增testTeacherMapper测试类 (5)运行结果 二、Mybatis映射文件 — sql和include标签 (1)持久层新增根据Id查询方法 (2)映射文

    2024年02月01日
    浏览(35)
  • Hive使用shell调用命令行特殊字符处理

    数据处理常用hive -e的方式,通过脚本操作数仓,过程中常常遇到特殊字符的处理,如单双引号、反斜杠、换行符等,现将特殊字符用法总结使用如下,可直接引用,避免自行测试的繁琐。 输出内容为: 假如直接写n,则 输出内容为: (`)撇号在shell中使用需要用反斜杠转义

    2024年01月18日
    浏览(23)
  • Node.js中处理特殊字符的文件名,安全稳妥的方案

    在Node.js中,通过 path 模块提供的 basename 方法,我们可以轻松地从文件路径中提取文件名。然而,这个方法在处理特殊字符时存在一些问题,因为它会对这些字符进行转义,导致在不同操作系统上的兼容性问题。在这篇文章中,我们将介绍一种安全稳妥的方法,结合使用 dir

    2024年02月04日
    浏览(27)
  • JMeter请求参数Parameters,带中文或特殊字符(+/=)时,例如登录密码或者token等,需要勾选编码

    以前的登录接口密码参数不包含特殊字符,为了安全,产品今天修改了需求,密码必须由数字,字母和特殊字符构成,之前利用JMeter接口编写的脚本报错了,调整了一下,里面踩了一点坑,记录下来,希望对大家有帮助。 修改以前的接口,第一反应就是换一个复杂密码,然后

    2024年01月18日
    浏览(28)
  • URLSearchParams:JavaScript中的URL查询参数处理工具

    在Web开发中,处理URL查询参数是一项常见的任务。为了简化这一过程,JavaScript提供了URLSearchParams API。URLSearchParams是一个用于解析、操作和生成URL查询参数的实用工具。它使开发人员能够方便地访问和修改URL中的查询参数,从而简化了URL参数的处理过程。本文将深入探讨URLS

    2024年02月01日
    浏览(25)
  • C# 字符串操作指南:长度、连接、插值、特殊字符和实用方法

    字符串用于存储文本。一个字符串变量包含由双引号括起的字符集合 示例: 如果需要,一个字符串变量可以包含多个单词: 示例: 在 C# 中,字符串实际上是一个对象,其中包含可以在字符串上执行某些操作的属性和方法。例如,可以使用 Length 属性找到字符串的长度: 示例

    2024年01月20日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包