PHP GET参数特殊符号有啥规律?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP GET参数特殊符号有啥规律?相关的知识,希望对你有一定的参考价值。

比如说2019-02-10 16:46:36提交后就变成了2019-02-10+16%3A46%3A36这是如何变的,如何找到规律?

这是URI(Uniform Resource Identifier)编码 如果URL中有汉字,就必须编码后使用

例如,":"字符用十六进制来表示为3A,所以必须使用%3A来表示,"/"字符用十六进制来表示为2F,所以必须使用%2F来表示"/"字符。

一般空格是转换为加号 汉字以及特殊字符都要根据16进制的内容再在前门加一个%进行转换

而这里面分为不同的编码规则 有GBK、UTF8 所以在编码的时候要进行设置

下面是一个java获取字符串编码的例子

//百分比编码:获取某个字符的URL编码,编码是用URLEncoder.encode(),解码是用URLDecoder.decode()函数
String text;
try 
text = URLEncoder.encode("http://baidu.com", "iso-8859-1");
System.out.println(text);
 catch (UnsupportedEncodingException e) 
e.printStackTrace();

参考技术A 这是url被自动转码了,用url_decode()函数转回来就可以了

get请求时特殊符号处理

使用get方式时参数中不能有特殊字符,如:,空格,%,#,&,=等等;
解决办法:用URL转义符替换。
下面列出如下:
+      URL 中+号表示空格                      %2B   
空格   URL中的空格可以用+号或者编码            %20 
/      分隔目录和子目录                       %2F     
?      分隔实际的URL和参数                    %3F     
%      指定特殊字符                           %25     
#      表示书签                               %23     
&      URL 中指定的参数间的分隔符              %26     
=      URL 中指定参数的值                     %3D

  

以上是关于PHP GET参数特殊符号有啥规律?的主要内容,如果未能解决你的问题,请参考以下文章

URI 中特殊字符处理

http、https请求URL中带有&等特殊字符的解决方法

Spring特殊字符处理

如果向PHP页面传递带有“&”符号的参数怎么办?

http get请求时参数被转码的问题

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