json_encode返回null

今天发生一件怪事。。刚开始以为是smarty解析错误。但是日志一点错误没有。。找啊找。瞅了最后一句json_encode。果然是这哥们错了。。。但是日志没有报错。需要用json_last_error()捕获。

由于我对utf-8字符进行了错误的操作substr操作:

$html = ‘你好世界';

$html = substr($html, 0, 2);

var_dump(json_encode($html));

返回null

需要这样操作才可以

$html = mb_substr($html, 0, 2, ‘utf-8′);