摘要:所以,都有哪些特殊字符需要做特殊处理呢将这些特殊的字符转换成码,格式为加字符的码,即一个百分号,后面跟对应字符的进制码值。参考文章特殊字符转义及解决方法
一次在项目中,发送一个get请求,参数包含“#”,结果,从包括‘#’之后的字符串都没传递过去。
当然,试了一下‘&’,问题更大。
所以,都有哪些特殊字符需要做特殊处理呢?
将这些特殊的字符转换成ASCII码,格式为:%加字符的ASCII码,即一个百分号%,后面跟对应字符的ASCII(16进制)码值。例如 空格的编码值是"%20"。
URL特殊符号及对应的十六进制值编码:
1. + URL中+号表示空格 %2B 2. 空格 URL中的空格可以用+号或者编码 %20 3. / 分隔目录和子目录 %2F 4. ? 分隔实际的 URL 和参数 %3F 5. % 指定特殊字符 %25 6. # 表示书签 %23 7. & URL中指定的参数间的分隔符 %26 8. = URL中指定参数的值 %3D
解决方法:
str=str.replace(/\%/g,"%25").replace(/#/g,"%23").replace(/+/g,"%2B").replace(/"/g,"%22").replace(/"/g, "%27").replace(///g,"%2F").replace(" ","+").replace(/?/g,"%3F").replace(/&/g,"%26").replace(/=/g,"%3D")
+号表示空格,+号又能以“%2B”表示,所以要看出效果,注意replace的顺序。同理的还有‘%’,‘%’也需要处理,而其他的字符处理之后都会包含‘%’,所以先处理‘%’,就能看到所有的处理之后的效果。
参考文章:url特殊字符转义及解决方法
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/84906.html
摘要:中中特殊字符引起的问题前言,在做某个渠道的过程中,发现一个验签错误的问题。对已编码的字符串进行解码返回字符串,此字符串中百分号后跟两位十六进制数的序列都将被替换成原义字符。 PHP中URL中特殊字符引起的问题(+,,=) 前言,在做某个渠道的过程中,发现一个验签错误的问题。但是,当时验签在两个地方表现不一致,同一套处理方法,想到了这是因为两个地方请求方式是不同的一个get方法另外一个自...
摘要:之前写过一篇关于配置中心对配置内容加密解密的介绍构建微服务架构分布式配置中心加密解密。在这篇文章中,存在一个问题当被加密内容包含一些诸如这些特殊字符的时候,使用上篇文章中提到的类似这样的命令去加密和解密的时候,会发现特殊字符丢失的情况。 之前写过一篇关于配置中心对配置内容加密解密的介绍:《Spring Cloud构建微服务架构:分布式配置中心(加密解密)》。在这篇文章中,存在一个问题:...
摘要:当后端将数据取出再传给前端时,发生了编码混乱的问题。这样的编码错误问题导致数据上的,会造成不良的用户体验。但是,不幸的是,各方对该编码的规则是不同的,这也造成乱码的隐患。 本文由作者朱臻授权网易云社区发布。 1问题案例 曾在开发过程中,我们遇到了BASE64编码乱码的问题,该问题的场景如下: 当web前端,将带有中文字符的字符串base64编码后,传到后端。当后端将数据取出再传给we...
摘要:在查询字符串中,符号用作键值对之间的分隔符。注意如果组件中含有分隔符,比如和,则应当使用方法分别对各组件进行编码。也就是说,对全角日韩汉字起作用。 之所以对url进行编码是因为有些字符有特殊的含义。当URI被作为参数进行传输或排版或受到文字处理程序的处理时,重要的空格可能会消失并且可能引入无关紧要的空格。在查询字符串中,&符号(&)用作键值对之间的分隔符。 如果将&符号放入其中一个值中...
摘要:无方案方案是规定如何访问指定资源的主要标识符。比如指定文档中的某个章节。编码机制通过转义表示法,表示不安全字符。表示一台指定主机上可以直接访问的文件,省略主机名则默认为本机由定义,访问特定的文章或者新闻组。 URL概览 前面提到,URL资源是HTTP协议所使用的寻找资源位置的定位符。分为三个部分,主要的结构是: 方案://服务器/路径 这种结构使得网络上的每一个资源都只有唯一的命名方法...
阅读 775·2023-04-25 22:57
阅读 3000·2021-11-23 10:03
阅读 573·2021-11-22 15:24
阅读 3105·2021-11-02 14:47
阅读 2873·2021-09-10 11:23
阅读 3047·2021-09-06 15:00
阅读 3892·2019-08-30 15:56
阅读 3287·2019-08-30 15:52