• ベストアンサー

PHPにて

PHPにて urldecode($_POST["マルチバイト文字列"])という使い方は問題ないのでしょうか? 例えば、 $_POST["test"] = "あいうえお" だとします。 POST値がエンコードされたもの(%E%D%c%A9...等)ではなくマルチバイト文字列だとして そのPOST値に urldecode($_POST["test"]) と処理しても問題ないのでしょうか? ご教授お願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

URLエンコードは、%で始まって、0-9A-Zの2文字が続く、というルールで決まっているので、 マルチバイトの文字列にurldecode関数で処理しても、URLエンコードされた文字の範疇にないため、そのまま値が返されるのではないでしょうか。

kmjbnhgfcrgt
質問者

お礼

回答ありがとうございます。 自分でもデバッグ等して問題ないことを確認したのですが、 見落としや知識不足によるミスがないか不安になり投稿しました。 回答をいただけて安心しました。 ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

質問の意図がわからないのでなんとも言えませんが、 $_POSTで受け取ったデータはすでにでコードされていませんか?

kmjbnhgfcrgt
質問者

補足

回答ありがとうございます。 元のソースが同じロジックを何度も通るような造りなのですが $_POST["test"] = urldecode($_POST["test"]); $_SESSION["test"] = $_POST["test"]; 上記記述があり、デバッグをすると この $_POST["test"] にマルチバイト文字列が入っていたり エンコード済みのコードが入っていたりします。 なので、コードが入ってる場合は問題ないですが $_POST["test"] = "あいうえお"; 等、$_POST["test"]にマルチバイト文字列が入ったままの状態で $_POST["test"] = urldecode($_POST["test"]); URLデコードしても問題はないのかと疑問に思いました。 引き続き、ご教授よろしくお願い致します。

すると、全ての回答が全文表示されます。
このQ&Aのポイント
  • ローランド製品T-8・S-1をMIDIケーブルで接続したが、音が出ない問題についての質問。両方の電源を入れても音は出ず、片方だけでも大丈夫か悩む。
  • MIDI機器との接続トラブルに苦しむユーザーが、正しいセッティング方法や解決策を求めている。電源の設定や接続の仕方について知りたい。
  • T-8・S-1の接続で音が出ない場合の対処法と正しい使用法についての問い合わせ。より良い音楽制作のためのサポートを希望。
回答を見る

専門家に質問してみよう