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 相关文章推荐
实测在class的function中include的文件中非php的global全局环境
Jul 15 PHP
使用PHP导出Redis数据到另一个Redis中的代码
Mar 12 PHP
微信支付开发教程(一)微信支付URL配置
May 28 PHP
php使用fgetcsv读取csv文件出现乱码的解决方法
Nov 08 PHP
PHP文件操作方法汇总
Jul 01 PHP
PHP的Socket通信之UDP通信实例
Jul 02 PHP
CodeIgniter与PHP5.6的兼容问题
Jul 16 PHP
PHP7标量类型declare用法实例分析
Sep 26 PHP
PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图
May 15 PHP
PHP实现对文件锁进行加锁、解锁操作的方法
Jul 04 PHP
PHP简单实现二维数组的矩阵转置操作示例
Nov 24 PHP
Laravel 中创建 Zip 压缩文件并提供下载的实现方法
Apr 02 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 array_merge下进行数组合并的代码
2008/07/22 PHP
php表单敏感字符过滤类
2014/12/08 PHP
php邮箱地址正则表达式验证
2015/11/13 PHP
Laravel 加载第三方类库的方法
2018/04/20 PHP
深入分析js中的constructor和prototype
2012/04/07 Javascript
纯js和css实现渐变色包括静态渐变和动态渐变
2014/05/29 Javascript
JS实现至少包含字母、大小写数字、字符的密码等级的两种方法
2015/02/03 Javascript
div中文字内容溢出常见的解决方法
2017/03/16 Javascript
jQuery.ajax向后台传递数组问题的解决方法
2017/05/12 jQuery
详解vue-cli项目中怎么使用mock数据
2018/05/29 Javascript
详解Vue.js自定义tipOnce指令用法实例
2018/12/19 Javascript
vue模式history下在iis中配置流程
2019/04/17 Javascript
Vue切换div显示隐藏,多选,单选代码解析
2020/07/14 Javascript
老生常谈python之鸭子类和多态
2017/06/13 Python
python基础_文件操作实现全文或单行替换的方法
2017/09/04 Python
python中如何使用正则表达式的非贪婪模式示例
2017/10/09 Python
Python切片操作实例分析
2018/03/16 Python
浅析python3字符串格式化format()函数的简单用法
2018/12/07 Python
python random从集合中随机选择元素的方法
2019/01/23 Python
NumPy 基本切片和索引的具体使用方法
2019/04/24 Python
python3+PyQt5 实现Rich文本的行编辑方法
2019/06/17 Python
wxPython实现带颜色的进度条
2019/11/19 Python
Python列表倒序输出及其效率详解
2020/03/04 Python
Python如何使用bokeh包和geojson数据绘制地图
2020/03/21 Python
keras多显卡训练方式
2020/06/10 Python
雅诗兰黛(Estee Lauder)英国官方网站:世界顶级化妆品牌
2016/12/29 全球购物
英国家庭珠宝商:T. H. Baker
2018/02/08 全球购物
美国50岁以上单身人士约会平台:SilverSingles
2018/06/29 全球购物
新西兰廉价汽车租赁:Snap Rentals
2018/09/14 全球购物
应聘自荐书
2013/10/08 职场文书
城市创卫标语
2014/06/17 职场文书
计算机网络专业自荐信
2014/07/04 职场文书
委托书的格式
2014/08/01 职场文书
故宫的导游词
2015/01/31 职场文书
初二英语教学反思
2016/02/15 职场文书
Mysql数据库索引面试题(程序员基础技能)
2021/05/31 MySQL