0

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

更新如果我在它上使用 utf8_encodesearch.php?q=%E4pple它会产生正确的ä字符,但如果 url 中的字符串是由 GET 发送的,因此已经正确(并且工作)ä,utf8_encode 会把它弄乱。

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

4

1 回答 1

0

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

于 2011-07-21T23:23:38.980 回答