PHP中的$_COOKIE与urlencode/decode的关系

有些base64编码会产生"+"(加号),放到用java进行base64编码后放到cookies里面,然后PHP读取cookies时候,base64编码中的"+"变成了"_"(空格),原因如下:

PHP 手册里面提到:

Note that the value portion of the cookie will automatically be urlencoded when you send the cookie, and when it is received, it is automatically decoded and assigned to a variable by the same name as the cookie name. If you don't want this, you can use setrawcookie() instead if you are using PHP 5.


解决方法:

JAVA设置cookies前,先对base64编码进行urlencode。或者把base64编码中的"+"替换成其他字符,PHP解密前替换回就可以了。

posted @ 2011-10-21 16:06  C仔  阅读(318)  评论(0编辑  收藏  举报