JSON

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

字号+ 作者:H5之家 来源:H5之家 2017-01-08 14:00 我要评论( )

三零网提供网络编程、 PHP编程 的技术文章PHP解决JSON格式的中文显示问题给大家,希望大家喜欢,关键词PHP解决JSON格式的中文显示问题

本文为大家带来一篇 PHP解决JSON格式的中文显示问题。希望对您的学习研究PHP有帮助,具体参考描述如下:

返回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解决JSON格式的中文显示问题 的内容,有兴趣的同学可以继续浏览下面的内容,下一页会更加精彩哦。

●【往下看,下一页更精彩】●

1  2  3  4  5  6  7  下一页 


延伸阅读:
·php数据库返回json数据的实现方法
·php简单json rpc框架的实现方法
·PHP+jQuery获取json以后使用zy_tmpl生成下拉菜单的实现
·php数组转json格式的实现方法
·PHP浅析json_encode用法
·php解决http接口获取的json字符串使用json_decode无法解析的问题
·PHP返回JSON、XML的类
·解决php5.4以下版本json不支持中文
·PHP浅析JSON操作示例
·php递归json类分享
·PHP解决json_encode函数不转义中文的问题
·php浅析 json转换数组形式示例
·php解决json_encode设置为UTF-8编码出现中文乱码
·php浅析json_encode()函数用法
·PHP浅析JSON字符串的key缺少双引号的问题

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • js如何将返回的字符串转换为json格式的数据

    js如何将返回的字符串转换为json格式的数据

    2017-01-09 18:00

  • Retrofit+RxJava,Http请求get和post方法获取json数据简单封装

    Retrofit+RxJava,Http请求get和post方法获取json数据简单封装

    2017-01-06 13:00

  • JAVA解析JSON数据代码

    JAVA解析JSON数据代码

    2017-01-06 09:02

  • PHP转义Json的特殊字符

    PHP转义Json的特殊字符

    2017-01-05 12:00

网友点评