浏览器没收到返回,后端也没报错,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;
}
相关推荐
p***c9498 分钟前
PHP在电商中的电商系统
开发语言·php
阿星智力囊44 分钟前
Thinkphp6+nginx环境报错信息不显示,接口直接报500和CORS跨域(错误的引导方向),真坑啊
运维·nginx·php·thinkphp6
Xudde.3 小时前
Quick2靶机渗透
笔记·学习·安全·web安全·php
F***c3254 小时前
PHP在微服务中的分布式跟踪
分布式·微服务·php
chxii6 小时前
PHP 配置全解析:Apache vs Nginx 的线程安全差异与 Windows 实战指南
运维·php
用户607320369456 小时前
PHP cURL 接口调不通?最全故障排查流程来了(新手必收藏)
php
q***72197 小时前
PHP使用Redis实战实录2:Redis扩展方法和PHP连接Redis的多种方案
开发语言·redis·php
非凡的世界12 小时前
为什么我和越来越多的PHP程序员,选择了 Webman ?
开发语言·php·workman·webman
JHC00000013 小时前
发现个微信客户端的bug
微信·bug
FakeOccupational13 小时前
电路笔记(信号):网线能传多少米?网线信号传输距离
开发语言·笔记·php