下面的PHP代码可以解决以下问题:
1.json_encode UTF8码中文后的字符串不可阅读
2.json_encode 多级数组中文乱码问题
3.json_encode 数组中包含换行时错误问题
4.json_encode 数组中键为中文的问题
function _encode($arr) { $na = array(); foreach ( $arr as $k => $value ) { $na[_urlencode($k)] = _urlencode ($value); } return addcslashes(urldecode(json_encode($na)),"\\r\\n"); } function _urlencode($elem) { if(is_array($elem)){ foreach($elem as $k=>$v){ $na[_urlencode($k)] = _urlencode($v); } return $na; } return urlencode($elem); }
测试
$a=array('a'=>'中国','b'=>array('d'=>'印度'));
$e=array('中国'=>'1','b'=>array('d'=>'3'));
echo json_encode($a);
echo "<br/>";
echo _encode($a);
echo "<br/>";
echo json_encode($e);
echo "<br/>";
echo _encode($e);
输出结果
{"a":null,"b":{"d":null}}
{"a":"中国","b":{"d":"印度"}}
{null:"1","b":{"d":"3"}}
{"中国":"1","b":{"d":"3"}}
浙公网安备 33010602011771号