mysql存储json格式中文问题解决

8 篇文章 0 订阅
由于有些数据内容字段格式不固定需要使用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);

 

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值