要把数一个数组,存到数据库的一个字段中,有两种方法,一种是用序列化函数serialize($arr);还有一种是用php的json扩展自带的函数json_encode($arr);如果json_encode对含有中文的字符进行编码时,会自动转换成unicode编码。就像这样:a:2:{s:4:”code”;s:1:”1″;s:3:”msg”;s:9:”PHP日志”;},虽然js上能正常处理,但是看起来还是不那爽,在PHP的官方网站上面找到一个函数,可以解决这个问题,也就是将数据转换json,而且中文不会被转换为unicode码。
代码如下 | 复制代码 |
<?php function php2js($a=false) { if (is_null($a)) return 'null'; if ($a === false) return 'false'; if ($a === true) return 'true'; if (is_scalar($a)) { if (is_float($a)) { // Always use "." for floats. $a = str_replace(",", ".", strval($a)); } // All scalars are converted to strings to avoid indeterminism. |
使用方法一:
echo serialize(array(‘code’=>’1′,’msg’=>’PHP日志’));
输出:a:2:{s:4:”code”;s:1:”1″;s:3:”msg”;s:9:”PHP日志”;}
使用方法二:
echo json_encode(array(‘code’=>’1′,’msg’=>’PHP日志’));
输出:{“code”:”1″,”msg”:”PHPu65e5u5fd7″}
使用方法三:
echo php2js(array(‘code’=>’1′,’msg’=>’未知错误’));
输出:{ “code”: “1”, “msg”: “PHP日志” }