当前位置:首页 > PHP > 正文内容

php json_encode JSON_ERROR_UTF8 Malformed UTF-8 characters, possibly incorrectly encoded

高老师6年前 (2020-10-12)PHP2133

最近在项目中遇到json_encode返回false,通过json_last_error()和json_last_error_msg()函数获取到的错误代码为5,错误信息为Malformed UTF-8 characters, possibly incorrectly encoded,参考代码:

//用户信息
$data = [
    'age' => 18,
    'name' => '高久峰'
];

//过长字段截取
$data['name'] = substr($data['name'], 0, 2);

//保存为Json
$en_char = json_encode($data);
if (!$en_char)
{
    print_r('错误码:' . json_last_error() . PHP_EOL);
    print_r('错误信息:' . json_last_error_msg());
}

输出:

错误码:5
错误信息:Malformed UTF-8 characters, possibly incorrectly encoded

本来以为是编码问题,毕竟用户上传的是excel文件报错的,多次进行编码结果也不行,后来想到是不是substr导致中文字符串出现问题了,于是改为下面:

//过长字段截取
$data['name'] = mb_substr($data['name'], 0, 2, 'utf-8');

于是ok了。

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/168.html

分享给朋友:

“php json_encode JSON_ERROR_UTF8 Malformed UTF-8 characters, possibly incorrectly encoded” 的相关文章

Thinkphp Call Stack,PHP调用栈Call Stack的获取

Thinkphp Call Stack,PHP调用栈Call Stack的获取

ThinkPHP中有一个debug调试功能,能输出报错文件的信息,并能看到这个函数被哪些函数调用,从框架的启动开始记录,特别方便调试。于是研究了下它的底层给予了实现。<?php //--框架核心--Start //框架内置错误处理 function errDealWith($er...

cookie跨域,cookie p3p跨域

cookie跨域,cookie p3p跨域

最近在公司开发一个新的项目假设项目域名是a.com,需要接入b.com的单点登陆系统。(1).首先我们会在a.com的登陆页面用iframe引入b.com来显示登陆界面,实际上登陆验证操作都是在b.com上面(2).当b.com验证通过,会在前端ajax请求a.com的回调地址,这个回调地址目的就是...

php守护进程

php守护进程

<?php /**  * daemonize让当前脚本为守护进程执行  * @param string $callback 匿名函数  */ function daemonize($callback) {...

php定义常量数组

php定义常量数组

<?php //php7+ define('CONFIG', [     'MYSQL' => '127.0.0.1',     ...

PHP Warning:  ftok(): Project identifier is invalid

PHP Warning: ftok(): Project identifier is invalid

在使用ftok生成ipc进程通信key尝试将第二个参数项目标识符传入字符串报错:PHP Warning:  ftok(): Project identifier is invalid,查阅资料发现第二个字符串只能是1个字符串,长度为1....

php位运算符详解

php位运算符详解

文章篇幅较长,如果不喜欢看文章的,此处抛出韩顺丰老师的位运算视频,韩老师应该是全网讲php位运算符最详细的一个老师了。链接:https://pan.baidu.com/s/14xj7er8eVSUcJ-jYXyA0GA  提取码:731m 链接:https://pan.baidu.com...