免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1202 | 回复: 0
打印 上一主题 下一主题

php json 中文乱码 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-20 09:48 |只看该作者 |倒序浏览
方法一:
  1. <?php
  2. $code = json_encode($str);
  3. $code = preg_replace("#\\\u([0-9a-f]+)#ie", "iconv('UCS-2', 'UTF-8', pack('H4', '\\1'))", $code);
  4. ?>
方法二: 
  1. <?php
  2. // 将数组转换成Json格式,中文需要进行URL编码处理
  3. function Array2Json($array) {
  4.     arrayRecursive($array, 'urlencode', true);
  5.     $json = json_encode($array);
  6.     $json = urldecode($json);
  7.     // ext需要不带引号的bool类型
  8.     $json = str_replace("\"false\"","false",$json);
  9.     $json = str_replace("\"true\"","true",$json);
  10.     return $json;
  11. }
  12. function arrayRecursive(&$array, $function, $apply_to_keys_also = false)
  13. {
  14.     static $recursive_counter = 0;
  15.     if (++$recursive_counter > 1000) {
  16.         die('possible deep recursion attack');
  17.     }
  18.     foreach ($array as $key => $value) {
  19.         if (is_array($value)) {
  20.             arrayRecursive($array[$key], $function, $apply_to_keys_also);
  21.         } else {
  22.             $array[$key] = $function($value);
  23.         }
  24.         if ($apply_to_keys_also && is_string($key)) {
  25.             $new_key = $function($key);
  26.             if ($new_key != $key) {
  27.                 $array[$new_key] = $array[$key];
  28.                 unset($array[$key]);
  29.             }
  30.         }
  31.     }
  32.     $recursive_counter--;
  33. }
  34. ?>

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP