在我的项目中,我需要使用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++
网址解码后:
((u.firstname LIKE 'Êrol%') AND (u.lastname LIKE '%Enriquez%')
答案 0 :(得分:1)
如果您将其解码两次,就会发生这种情况。
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
可能是Ê