URL传参中不能带特殊的字符以及处理方案

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了URL传参中不能带特殊的字符以及处理方案相关的知识,希望对你有一定的参考价值。

参考技术A 根据 RFC 2396标准 ,有些符号在URI中是不能直接传递的,如果要在URI中传递这些特殊符号,那么就要使用他们的编码,编码的格式为百分比编码:%加字符的ASCII码,即一个百分号%,后面跟对应字符的ASCII(16进制)码值。例如 空格的编码值是"%20"。

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~:/?#[]@!$&'()*+,;=

根据RFC规范,URI中只可以包含以下特殊字符:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~:/?#[]@!$&'()*+,;=
注意,这个列表没有说明这些字符在URI中的位置。任何其他字符都需要用百分比编码。URI的每个部分都对需要用百分比编码的字表示哪些字符有进一步的限制。

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~

RFC3986还指定了一些亚细亚字符,这些字符总是可以简单地用于表示数据,而不需要进行任何编码,而这些字符也正好是允许的字符除去保留字符。因此原则上,除了这些字符之外的字符都需要进行百分比转义。

只剩下以下ASCII字符:禁出现在URL中:

因此需要转义的字符包括保留字符和禁止出现在URL的字符:

以上是关于URL传参中不能带特殊的字符以及处理方案的主要内容,如果未能解决你的问题,请参考以下文章

URL 传参中需要处理的特殊字符

在传参时,url参数中包含+空格=%&#等特殊符号的处理

传参的时候遇到特殊符号的处理

微信小程序页面跳转url传参,对象、数据过长、特殊字符问题

URL 传参转义 (特殊符号转义)

请求传参 有特殊符号