在我的项目中,我需要使用urlencode在GET变量中传递一个简单而简短的查询。
在我执行URL解码之后,一些字符似乎被修改了,因此不返回数据库结果。
我想知道是否有人能帮我找出这是为什么,以及如何解决这个问题?
事先非常感谢!
在URL编码之前:
((u.firstname LIKE '%Carol%') AND (u.lastname LIKE '%Enriquez%')
URL Endode之后:
%28%28u.firstname+LIKE+%27%25Carol%25%27%29+AND+%28u.lastname+LIKE+%27%25Enriquez%25%27%29%29++
URL解码后:
((u.firstname LIKE 'Êrol%') AND (u.lastname LIKE '%Enriquez%')
发布于 2014-01-02 14:13:19
如果你对它进行两次解码,就会发生这种情况。
观察:http://3v4l.org/uK5a6
var_dump(urldecode(urlencode("((u.firstname LIKE '%Carol%') AND (u.lastname LIKE '%Enriquez%')")));
var_dump(urldecode(urldecode(urlencode("((u.firstname LIKE '%Carol%') AND (u.lastname LIKE '%Enriquez%')"))));
string(64) "((u.firstname LIKE '%Carol%') AND (u.lastname LIKE '%Enriquez%')"
string(62) "((u.firstname LIKE '�rol%') AND (u.lastname LIKE '%Enriquez%')"%是用于URL编码的一个特殊字符。%Ca可能是Ê
https://stackoverflow.com/questions/20884776
复制相似问题