使用mb_strlen之后 再通过json_encode输出json字符串。提示php Malformed UTF-8 characters, possibly incorrectly encoded

原因是json编码中有乱码字符导致,通过线上调试,使用mb_internal_encoding输出,发现默认编码是iso-8859-1,所以在裁剪的时候导致一个字符被裁成了2半,最后导致乱码

解决办法:

  • 方法1.代码中设置成UTF-8字符集, mb_internal_encoding("UTF-8")
  • 方法2.在php.ini中设置mbstring.internal_encoding = UTF-8。如果有注释,去掉注释即可。