PHP javascriptで受け渡しするCookieのスペースがプラスになる
PHPで保存したクッキーをjavascriptで読む場合、値にスペースが含まれているとプラス「+」と表示されてしまう。
[PHP]
setcookie("cookiename","クッキー 値");
[javascript]
alert($.cookie(cookiename);
→「クッキー+値」と表示される。
PHPではスペースを「+」にエンコードしているが、javascriptでは「+」はデコードせずにそのまま表示させているためだ。
では、javascriptではスペース は何にエンコードしているのだろうか。それは「%20」だ。
そこで、PHPで親切にも「+」を「%20」にreplaceしてjavascriptに渡したらどうだろうかと思ったが、クッキーに保存するときに「%20」がさらにエンコードされてしまい、結局javascriptでデコードしたときに「%20」となってしまう。
かといってjavascriptで「+」をスペースにreplaceしたら、「+」であるべきものまでスペースにされてしまう。
今は時間がないので、この問題は棚上げにしておこう。