php对一个base64_encode编码后的字符串通过url传递后进行base64_decode发现返回值是false。尝试将url传递后的值打印出来发现+都被换成了空格。上网查了下发现,对于通过application/x-www-form-urlencoded的HTTP传递值,+会被自动替换为空格。所以也有各种对base64编码进行扩充的,比如对+,/等符号进行替换的,以便HTTP传输。在php中需要将+号或空格做退还,比如简单的str_replace(‘ ‘,’+’,$str)或者在传输前做urlencode。
PHP base64_decode 空格问题
发表评论