PHP JSON格式的中文显示问题解决方法


Posted in PHP onApril 09, 2015

返回json数据中文显示的问题

上一篇文章中,返回json格式的中文显示成\u5723\u8bde\u8282\u5343\u4e07\u597d\u793c\u5927\u5949\u9001

解决方法一:

<?php 

function Notice(){

    include './include/conn.php';  //数据库链接文件

    $sql_notice = mysql_query('SELECT * FROM gg_notice where enable = "1" limit 0,10');

    $notice = mysql_fetch_array($sql_notice, MYSQL_ASSOC);

    $str = json_encode($notice);

    //linux

    return preg_replace("#\\\u([0-9a-f]{4})#ie", "iconv('UCS-2BE', 'UTF-8', pack('H4', '\\1'))", $str);

    //windows

    //return preg_replace("#\\\u([0-9a-f]{4})#ie", "iconv('UCS-2LE', 'UTF-8', pack('H4', '\\1'))", $str);

    

}

?>

另外从网上搜索到的其他方法

<?php

/**

 * json 生成,分析 支持中文

 */

class Json_Helper {

    /**

     * 生成json

     */

    public static function encode($str){

        $json = json_encode($str);

        //linux

        return preg_replace("#\\\u([0-9a-f]{4})#ie", "iconv('UCS-2BE', 'UTF-8', pack('H4', '\\1'))", $json);

        //windows

        //return preg_replace("#\\\u([0-9a-f]{4})#ie", "iconv('UCS-2LE', 'UTF-8', pack('H4', '\\1'))", $json);

    }
    /**

     * 分析json

     */

    public static function decode($str) {

        return json_decode($str);

    }

}

?>

这是从网上搜索得到的又一篇相关文章

当使用php自带的json_encode对数据进行编码时,中文都会变成unicode,导致不可读。如:对字符串”厦门“进行json_encode后,输出的是"\u53a6\u95e8"。

查询了一下,有两种方法:
1.将"\u53a6\u95e8"还原成“厦门”,使用如下的代码:

$str= preg_replace("#\\\u([0-9a-f]+)#ie", "iconv('UCS-2', 'UTF-8', pack('H4', '\\1'))", $str);

2.先将中文字段urlencode,json_encode后,再用urldecode,也可以显示中文。

$code = urldecode(json_encode(urlencode("厦门")));

PHP5.4版本,已经给Json新增了一个选项: JSON_UNESCAPED_UNICODE。加上这个选项后,就不会自动把中文编码了。

echo json_encode("厦门", JSON_UNESCAPED_UNICODE);

另,由于 json_encode 和 json_decode只支持utf-8编码的字符,GBK的字符要用json就得转换一下,附自己写的GBK转UTF-8的代码:
/*

    字符串GBK转码为UTF-8,数字转换为数字。

*/

function ct2($s){

    if(is_numeric($s)) {

        return intval($s);

    } else {

        return iconv("GBK","UTF-8",$s);

    }

}

/*

    批量处理gbk->utf-8

*/

function icon_to_utf8($s) {
  if(is_array($s)) {

    foreach($s as $key => $val) {

      $s[$key] = icon_to_utf8($val);

    }

  } else {

      $s = ct2($s);

  }

  return $s;
}
echo json_encode(icon_to_utf8("厦门"));
PHP 相关文章推荐
PHP实现域名whois查询的代码(数据源万网、新网)
Feb 22 PHP
PHP+Ajax异步通讯实现用户名邮箱验证是否已注册( 2种方法实现)
Dec 28 PHP
php include和require的区别深入解析
Jun 17 PHP
php中并发读写文件冲突的解决方案
Oct 25 PHP
单台服务器的PHP进程之间实现共享内存的方法
Jun 13 PHP
PHP中的事务使用实例
May 26 PHP
php+mysql+ajax实现单表多字段多关键词查询的方法
Apr 15 PHP
PHP基于堆栈实现的高级计算器功能示例
Sep 15 PHP
php 与 nginx 的处理方式及nginx与php-fpm通信的两种方式
Sep 28 PHP
Swoole实现异步投递task任务案例详解
Apr 02 PHP
Yii框架组件的事件机制原理与用法分析
Apr 07 PHP
PHP与Web页面的交互示例详解一
Aug 04 PHP
Laravel 5框架学习之用户认证
Apr 09 #PHP
PHP中把数据库查询结果输出为json格式简单实例
Apr 09 #PHP
Laravel 5框架学习之Eloquent 关系
Apr 09 #PHP
在html文件中也可以执行php语句的方法
Apr 09 #PHP
PHP统一页面编码避免乱码问题
Apr 09 #PHP
PHP生成静态HTML页面最简单方法示例
Apr 09 #PHP
Laravel 5框架学习之子视图和表单复用
Apr 09 #PHP
You might like
php入门小知识
2008/03/24 PHP
php使用pdo连接报错Connection failed SQLSTATE的解决方法
2014/12/15 PHP
PHP二进制与字符串之间的相互转换教程
2016/10/14 PHP
jQuery ready函数滥用分析
2011/02/16 Javascript
用jquery实现自定义风格的滑动条实现代码
2011/04/26 Javascript
JavaScript数字和字符串转换示例
2014/03/26 Javascript
DOM基础教程之事件类型
2015/01/20 Javascript
jQuery层动画定位滑动效果的方法
2015/04/30 Javascript
深入解析JavaScript中的立即执行函数
2016/05/21 Javascript
深入理解JS函数的参数(arguments)的使用
2016/05/28 Javascript
jQuery基于toggle实现click触发DIV的显示与隐藏问题分析
2016/06/12 Javascript
vue+vue-router转场动画的实例代码
2018/09/01 Javascript
angularJs提交文本框数据到后台的方法
2018/10/08 Javascript
Nodejs实现多文件夹文件同步
2018/10/17 NodeJs
JavaScript深入V8引擎以及编写优化代码的5个技巧
2019/06/24 Javascript
JS数组的常用10种方法详解
2020/05/08 Javascript
基于原生js实现九宫格算法代码实例
2020/07/03 Javascript
vue2.0 解决抽取公用js的问题
2020/07/31 Javascript
vue实现点击按钮“查看详情”弹窗展示详情列表操作
2020/09/09 Javascript
numpy.random.seed()的使用实例解析
2018/02/03 Python
python实现自动发送邮件
2018/06/20 Python
python中使用zip函数出现错误的原因
2018/09/28 Python
Python中super函数用法实例分析
2019/03/18 Python
远程部署工具Fabric详解(支持Python3)
2019/07/04 Python
深入浅析Python 命令行模块 Click
2020/03/11 Python
Python多线程通信queue队列用法实例分析
2020/03/24 Python
python随机模块random的22种函数(小结)
2020/05/15 Python
工作时间上网检讨书
2014/02/03 职场文书
税务干部群众路线教育实践活动对照检查材料
2014/09/20 职场文书
乡镇领导干部个人对照检查材料思想汇报
2014/09/23 职场文书
住房抵押登记委托书
2014/09/27 职场文书
优秀党员推荐材料
2014/12/18 职场文书
2015年领班工作总结
2015/04/29 职场文书
2015年社区流动人口工作总结
2015/05/12 职场文书
二审答辩状范文
2015/05/22 职场文书
spring项目中切面及AOP的使用方法
2021/06/26 Java/Android