PHP javascriptで受け渡しするCookieのスペースがプラスになる | WEBエンジニア社長のブログ

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したら、「+」であるべきものまでスペースにされてしまう。


今は時間がないので、この問題は棚上げにしておこう。