ユーザーがGETで送信されるいくつかのクエリワードを入力する検索スクリプトがあります。ユーザー入力に特殊文字が含まれている場合、たとえばäpple
URL は次のようになり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 はそれを台無しにします。
何かをする前にエンコーディングをチェックすれば条件を作ることができると思いますが、それはより簡単な方法ではありませんか??