有些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解密前替换回就可以了。