记录json_encode编码返回空白问题

  • PHP
  • Feb 13, 2019
摘要:记录项目中使用json_encode编码返回空白问题,我的问题是编码数据不是utf-8导致的。

项目中有次使用 json_encode 函数时,返回空白当时就懵了,难道被编码的数组是空吗?不对啊,数组有值啊,那为什么编码 json 会返回空呢?

后来翻翻手册http://php.net/manual/zh/function.json-encode.php,官方是这样写得:待编码的 value ,除了 resource 类型之外,可以为任何数据类型。所有字符串数据的编码必须是 UTF-8 。难道是因为我的编码不是UTF-8 ?后来我又发现了这段话:如果执行失败,可以通过 json_last_error() 函数来获取详细错误信息。

然后我就用 json_last_error() 函数来检测了下我的编码,比如:

<?php
echo json_encode(array('error' => '0', 'message' => '没有错误')); //这里也可以是json_decode
var_dump(json_last_error());

我这里是返回的int(5),对照错误码(异常的 UTF-8 字符,也许是因为不正确的编码),然后检测是自己编码前的数据,保证数据是UTF-8编码就OK了。

结束语:感谢您对本网站文章的浏览,欢迎您的分享和转载,但转载请说明文章出处。
Top