php json中文乱码处理方法

客户端对中文的处理是使用utf-8内码的,并且json对中文的处理也是使用utf-8,因此,ajax->php的时候,php需要utf8->gbk;php处理好后,在交给json函数处理,之前需要gbk->utf8,然后将结果php->ajax.

  1. <?php
  2. $code = json_encode($str);
  3. $code = preg_replace("#u([0-9a-f]+)#ie", "iconv('ucs-2', 'utf-8',
  4. pack('h4', '1'))", $code);
  5. ?>

json_encode() 给含有中文的内容进行编码时,会出现类似于u5c71u4e1c这样的代码,虽然使用jquery或者json_decode()进行解码的时候,下面看个实例:

  1. <?php
  2. $json = array (
  3. 0 =>
  4. array (
  5. 'id' => '13',
  6. 'name' => '乒乓球',
  7. ),
  8. 1 =>
  9. array (
  10. 'id' => '17',
  11. 'name' => '篮球',
  12. )
  13. )
  14. ?>
  15. <?php
  16. [{"id":"13","name":null}
  17. ,{"id":"13","name":null}]
  18. ?>