由于有些数据内容字段格式不固定需要使用json存储,mysql在存储json时,存在中文会把\过滤掉,导致读取的数据有问题, 解决方案 PHP5.4支持JSON_UNESCAPED_UNICODE这个参数,此参数是让中文字符在json_encode的时候不用转义 但在PHP5.3中,就得自己写个函数来实 //json中文处理 function json_encode_mb($array) { if (version_compare(PHP_VERSION, '5.4.0', '<')) { $str = json_encode($array); $str = preg_replace_callback("#\\\u([0-9a-f]{4})#i", function ($matchs) { return iconv('UCS-2BE', 'UTF-8', pack('H4', $matchs[1])); }, $str); return $str; } else { return json_encode($array, JSON_UNESCAPED_UNICODE); } }
$arr = array( 'test'=>"哈哈哈" ); $arr = json_encode_mb($arr);