使用特殊字符解码用户输入

时间:2011-07-21 22:43:24

标签: php urldecode

我有一个搜索脚本,用户输入一些使用GET发送的查询字。如果用户输入包含特殊字符,例如äpple网址变为search.php?q=äpple,一切正常。但是,如果用户重新运行此网址search.php?q=äpple,则浏览器地址字段会显示search.php?q=%E4pple,并且查询将失败。我应该如何解码该字符串。 urldecode没有用。我认为这正是它的原因所以还有其他错误吗?或者我可以尝试哪些其他功能?

UPDATE 如果我在search.php?q=%E4pple上使用utf8_encode,它会产生正确的ä字符,但如果网址中的字符串是由GET发送的,因此已经正确(并且正在工作)ä,则utf8_encode将其混淆起来。

我想我可以制作一个条件,我在做某事之前检查编码,但这不是一个更简单的方法吗?

1 个答案:

答案 0 :(得分:0)

通过检查$ _GET ['q']的编码来解决它,并对编码检查的结果进行适当处理。有关检查编码的函数,请参阅http://php.net/manual/en/function.utf8-encode.php