プロが教えるわが家の防犯対策術!

URLエンコードを使用してデーターの受け渡しをしようと思っているんですが。

1ページ目
$cc4=urlencode("ソ");
echo "エンコード={$cc4}<BR>";

2ページ目
$cc5=urldecode($cc4);
echo "デコード={$cc5}";

カタカナの『ソ』が入るとちゃんと受け渡しが出来ません。

どうしたらいいでしょうか?
よろしくお願いします。

A 回答 (3件)

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

    • good
    • 0
この回答へのお礼

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

お礼日時:2005/08/10 23:00

'ソ'がシフトJISで835Cの為に¥のコード(5C)を含むために


””中でエスケープ処理をしようとするためにエラーになります。
簡単な解決としては、文字列中の'\'を'\\'に置き換えることです。
例えばそういう文字列の場合
"ソ\"としてやると\x83\\となって¥を2つにしたのと同じですからOKになります。
いちいち文字コードを観ながら¥マークを挿入していくのも面倒ですね。
試してみたところ
$data=<<<EOD

EOD;
$cc4=urlencode(rtrim($data));
のようにヒアドキュメントで文字列に代入し余分に入る改行を削除すればうまくいきます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/08/10 22:58

日本語はURLエンコードしません。

する必要もありません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!