• ベストアンサー

エンコードについて

URLエンコードを使用してデーターの受け渡しをしようと思っているんですが。 1ページ目 $cc4=urlencode("ソ"); echo "エンコード={$cc4}<BR>"; 2ページ目 $cc5=urldecode($cc4); echo "デコード={$cc5}"; カタカナの『ソ』が入るとちゃんと受け渡しが出来ません。 どうしたらいいでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • nattouv
  • ベストアンサー率75% (3/4)
回答No.3

stripslashes()関数を使えば良いんじゃないですかね。

takataka7
質問者

お礼

こんな関数があったんですね。 すいません、本で関数を調べたつもりでしたが、一発で解決しました。 ありがとうございます。

その他の回答 (2)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

'ソ'がシフトJISで835Cの為に¥のコード(5C)を含むために ””中でエスケープ処理をしようとするためにエラーになります。 簡単な解決としては、文字列中の'\'を'\\'に置き換えることです。 例えばそういう文字列の場合 "ソ\"としてやると\x83\\となって¥を2つにしたのと同じですからOKになります。 いちいち文字コードを観ながら¥マークを挿入していくのも面倒ですね。 試してみたところ $data=<<<EOD ソ EOD; $cc4=urlencode(rtrim($data)); のようにヒアドキュメントで文字列に代入し余分に入る改行を削除すればうまくいきます。

takataka7
質問者

お礼

まだ始めたばっかりでしたので初歩的な事が分かっておらず、分かりやすい回答ありがとうございました。

  • yamagoro
  • ベストアンサー率20% (12/60)
回答No.1

日本語はURLエンコードしません。する必要もありません。

関連するQ&A