被赶鸭子上架 改php代码 ,base64加密的字符串用工具解密明明是好的
{"code":"10000","info":"取消订单成功"}
在php中用base64_decode 解密却出现了乱码
{"code":"10000","info":"兹??:+¨?cey?$9b§?
刚开始以为是字符集的问题,后来发现base64_decode 方法里面并没有设置字符集的地方,查阅一番之后才发现是有符号被替换成了空格,正确打开的方式:
$encodedData = str_replace(' ','+',$encodedData);$decocedData = base64_decode($encodedData);
如果字符串过长,还需要先替换再分段解码:
$encoded = str_replace(' ','+',$encoded);
$decoded = "";
for ($i=0; $i < ceil(strlen($encoded)/256); $i++) $decoded = $decoded . base64_decode(substr($encoded,$i*256,256));