当前位置: 代码迷 >> 综合 >> PHP base64_decode 乱码问题
  详细解决方案

PHP base64_decode 乱码问题

热度:66   发布时间:2023-10-09 06:52:43.0

被赶鸭子上架 改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)); 
  相关解决方案