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

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

高老师5年前 (2020-10-12)PHP1998

最近在项目中遇到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” 的相关文章

Cookie禁用了Session还能用吗?

Cookie禁用了Session还能用吗?

    Session在默认情况下是使用客户端的Cookie来保存Session ID的,所以当客户端的cookie出现问题的时候就会影响Session了,如果你单纯的认为SESSION和COOKIE没有联系的话请迅速百度补脑。  &nbs...

php调用 java webservice接口

php调用 java webservice接口

php调用Webservice基本语法如下:$url ='xxxxxxx.cn'  //链接服务器端 $client = new SoapClient($url);通过以上语法已经连接到webservice,也可将wsdl在本地使用,...

php 数组转换xml,php 数组转成xml,php数组转xml 函数

php 数组转换xml,php 数组转成xml,php数组转xml 函数

源码:特别适用于微信支付中通知微信支付网关function array2xml($arr, $level = 1) { $s = $level == 1 ? "<xml&g...

 php监听事件,php触发事件

php监听事件,php触发事件

逛公众号文章看到文章"php实现事件监听与触发的方法,你用过吗?",我就好奇了,php又不是asp.net的webform,哪里来的服务端事件监听。于是学习了一波。先看下监听类:class Event {     /** &nbs...

PHP Startup: Unable to load dynamic library 'C:\php\ext\php_curl.dll找不到指定的模块

PHP Startup: Unable to load dynamic library 'C:\php\ext\php_curl.dll找不到指定的模块

最近在编写windows php多线程的东西,从官网下载了PHP的线程安全版,尝试开启curl扩展extension=php_curl.dllphp -m 却提示 PHP Startup: Unable to load dynamic library 'C:\php\ext\php_curl...

php代理下载,php代下载文件,php下载远程文件,php远程文件下载

php代理下载,php代下载文件,php下载远程文件,php远程文件下载

经常我们下载国外资源容易被墙,可以通过php脚本获取远程文件流然后输出给我们的浏览器来下载。<?php //设置下载文件的url $url = 'https://mirrors.huaweicloud.com/ubuntukylin/ubuntukylin-19....