zoukankan      html  css  js  c++  java
  • json_encode 中文变成null

    今天在使用php时掉进了一个坑里,折腾了好久。
    在使用json_encode时,如果数组中存在中文,该中文输出为null。
     
    示例代码:
    <?php
      $brand = array('id'=>'123456','name'=>'联想');
      var_dump(json_encode($brand));
    ?>

    输出结果:

    string(27) "{"id":"123456","name":null}"
    “联想”变成null了。
    使用下面这个函数解决了此问题。
    <?php
      function gbk2utf8($data){
        if(is_array($data)){
          return array_map('gbk2utf8', $data);
        }
        return iconv('gbk','utf-8',$data);
      }
    ?>
    <?php
      $brand = array('id'=>'123456','name'=>'联想');
      var_dump(json_encode(gbk2utf8($brand)));
    ?>

    在json_encode之前做一下gbk2utf8转码,此时输出正确结果。

    string(37) "{"id":"123456","name":"u8054u60f3"}"

    u8054u60f3 为“联想”的unicode码,浏览器会自动转换成文字。

  • 相关阅读:
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    MySQL-数据库三范式
    去除IDEA中xml黄色背景
    git查看commit提交记录详情
    spring-定时任务<task:scheduled-tasks>
  • 原文地址:https://www.cnblogs.com/f2er/p/json_encode_chinese_messy.html
Copyright © 2011-2022 走看看