gbk下json_encode无效,中文返回null

在gbk的程序中,直接使用json_encode如果包含中文将会返回null。

解决方法可以装支持gbk的json扩展,当然最简单的方法是自己用iconv转换一下编码再encode。

代码如下:

function gbk_to_utf8($data) {

foreach ($data as $k => $v) {

if (is_array($v)) {

$data[$k] = gbk_to_utf8($v);

} else {

$data[$k] = iconv('gbk', 'utf-8', $v);

}

}

return $data;

}

使用方法:

echo json_encode(gbk_to_utf8($data));

2012年04月24日