浏览器没收到返回,后端也没报错,php的json_encode问题bug

今天网站遇到个问题,后端返回异常,但是浏览器状态码200,但是看不到结果。经过排查发现,我们在返回结果的时候使用了json_encode返回给前端,结果里面的字符编码异常,导致json_encode异常,但是php没有报错,也没有错误日志,经过一步步调试,最终找到这个问题,特此记录。


修复代码如下:

php 复制代码
<?php
$v = 'PHNjcmlwdCBsYW5nPY2r2rHK4nJpcHRcPg==';
$slices = explode(',', $v);

$matchdata = array_map('base64_decode', $slices);
$json_encode = json_encode(mb_convert_encoding($matchdata, 'UTF-8'));
if ($json_encode === false) {
    echo "JSON encoding failed. Error: " . json_last_error_msg();
} else {
    echo $json_encode;
}
相关推荐
蓝色记忆29 分钟前
Composer PSR-4 自动加载机制的完整流程
php
only-lucky4 小时前
C语言socket编程-补充
服务器·c语言·php
蓝黑20204 小时前
PHP从字符串到数值的类型转换
php
一个临漂的实习生4 小时前
php协程
php·swoole
葬歌倾城17 小时前
JSON的缩进格式方式和紧凑格式方式
c#·json
开-悟20 小时前
嵌入式编程-使用AI查找BUG的启发
c语言·人工智能·嵌入式硬件·bug
一入JAVA毁终身20 小时前
Data的时区格式BUG
bug
yanwushu1 天前
10分钟搭建 PHP 开发环境教程
php·laravel
火车叨位去19491 天前
Java中的JSON序列化和反序列化
json
车载测试工程师1 天前
车载以太网网络测试-29【SOME/IP-SD】-SD状态机
网络·网络协议·tcp/ip·车载系统·php