- ベストアンサー
PHPにて
PHPにて urldecode($_POST["マルチバイト文字列"])という使い方は問題ないのでしょうか? 例えば、 $_POST["test"] = "あいうえお" だとします。 POST値がエンコードされたもの(%E%D%c%A9...等)ではなくマルチバイト文字列だとして そのPOST値に urldecode($_POST["test"]) と処理しても問題ないのでしょうか? ご教授お願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
URLエンコードは、%で始まって、0-9A-Zの2文字が続く、というルールで決まっているので、 マルチバイトの文字列にurldecode関数で処理しても、URLエンコードされた文字の範疇にないため、そのまま値が返されるのではないでしょうか。
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
質問の意図がわからないのでなんとも言えませんが、 $_POSTで受け取ったデータはすでにでコードされていませんか?
補足
回答ありがとうございます。 元のソースが同じロジックを何度も通るような造りなのですが $_POST["test"] = urldecode($_POST["test"]); $_SESSION["test"] = $_POST["test"]; 上記記述があり、デバッグをすると この $_POST["test"] にマルチバイト文字列が入っていたり エンコード済みのコードが入っていたりします。 なので、コードが入ってる場合は問題ないですが $_POST["test"] = "あいうえお"; 等、$_POST["test"]にマルチバイト文字列が入ったままの状態で $_POST["test"] = urldecode($_POST["test"]); URLデコードしても問題はないのかと疑問に思いました。 引き続き、ご教授よろしくお願い致します。
お礼
回答ありがとうございます。 自分でもデバッグ等して問題ないことを確認したのですが、 見落としや知識不足によるミスがないか不安になり投稿しました。 回答をいただけて安心しました。 ありがとうございました。