0

ユーザーがGETで送信されるいくつかのクエリワードを入力する検索スクリプトがあります。ユーザー入力に特殊文字が含まれている場合、たとえばäppleURL は次のようになりsearch.php?q=äpple、すべてが正常に機能します。しかし、ユーザーがこの URL を再実行するとsearch.php?q=äpple、ブラウザのアドレス フィールドが表示search.php?q=%E4ppleされ、クエリは失敗します。その文字列をどのようにデコードすればよいですか。urldecode動作しませんでした。まさにこれだと思っていたのですが、何か違うのでしょうか?または、他にどの機能を試すことができますか?

UPDATE で utf8_encode を使用search.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 に答える