当前位置: 移动技术网 > IT编程>开发语言>PHP > url decode problem 解决方法

url decode problem 解决方法

2019年04月18日  | 移动技术网IT编程  | 我要评论
试验了一下python的urllib库以及js 的 encodeuricomponent 均不会替换。空格encode也是替换成了 '%20' 。python提供了urllib.quote_plus, urlib.unquote_plus来处理空格->加号,看起来还是比较合理的。

查了一下 rfc 3986: 有下面一段

scheme names consist of a sequence of characters beginning with a letter and followed by any combination of letters, digits, plus ("+"), period ("."), or hyphen ("-").
rfc 2396 有下面的一段

the plus "+", dollar "$", and comma "," characters have been added to those in the "reserved" set, since they are treated as reserved within the query component.
表示加号已经是url的保留字了,不需要转义。

然后html4文档里才有关于加号的转义:

application/x-www-form-urlencoded
forms submitted with this content type must be encoded as follows:
control names and values are escaped. space characters are replaced by`+', and then reserved characters.....
声明只有content-type为application/x-www-form-urlencoded时才会对+做转义。

又翻了下php的文档,发现有一个

rawurlencode() - url-encode according to rfc 3986


也就是php又搞了rawurlencode和rawurldecode把标准实现了。。。。

不能反一下么,毕竟大部分人应该都会用urlencode。php真是蛋疼啊。。。。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网