• ベストアンサー

$_GETってエンコードが必要なのでしょうか?

$_GETのエンコードについて質問があります。 リンクに日本語のデータを付け加える場合、エンコードが必要なのでしょうか? 今プログラムを作っているのですが、エンコードしていません。 だけど問題がありません。 これって実行環境によるのでしょうか? ちなみにプログラムですが フォームから、POSTで日本語を送る  ↓ $_POSTで捕まえて、リンクに付け足す。( ?test=$変数 )←こんな感じ  ↓ リンクをクリック  ↓ $_GETで捕まえて変数へ こんな流れです。 とりあえず希望通り動いているようです。 それって、たまたまでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

日本語でなくてもurlencodeは必須です。 自前でセットする文字列リテラルであれば(内容が既知なので)省けることもありますが、提示されたようにユーザーが投稿した文字列であれば、QueryStringで意味を持つ記号(「&」とか「#」とか)が入力される可能性があります。

a-z_A-Z
質問者

お礼

ありがとうございます。 今までは、たまたまうまくいっていただけなんですね。 今回の質問した部分のプログラムは、データ検索の部分です。 そこで、#を入れてテストしてみました。 検索対象のデータに#がないので、ちゃんと動きました。 改めて、いろいろなデータを入れてテストしてみます。 ありがとうございました。

その他の回答 (1)

回答No.2

ブラウザがエンコードしてくれているだけなので、 物によっては期待通りに動作しない可能性があります。

a-z_A-Z
質問者

お礼

ありがとうございます。 やはり環境によるのですね。 ブラウザが高機能になるのはありがたいですが、今回のような場合はその機能があだになるところでした。 エンコードする部分を追加することにします。 ありがとうございました。