博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php中json_encode中文编码问题分析
阅读量:7281 次
发布时间:2019-06-30

本文共 2012 字,大约阅读时间需要 6 分钟。

在 php 中使用 json_encode() 内置函数(php > 5.2)可以使用得 php 中数据可以与其它语言很好的传递并且使用它。

这个函数的功能是将数值转换成json数据存储格式。

 

'希亚', 'Age'=>20 ); $jsonencode= json_encode($arr);echo$jsonencode;?>

 

程序运行结果如下:

{
"Name":null,"Age":20}json_encode 函数中中文被编码成 null 了,Google 了一下,很简单,为了与前端紧密结合,Json 只支持 utf-8 编码,我认为是前端的 Javascript 也是 utf-8 的原因。
iconv('gb2312','utf-8','这里是中文标题'), 'body'=>'abcd...' ); echojson_encode($array);?>

 

这个程序的运行结果为:

1{
"title":"\u8fd9\u91cc\u662f\u4e2d\u6587\u6807\u9898","body":"abcd..."}

 

数组中所有中文在json_encode之后都不见了或者出现\u2353等。

解决方法是用urlencode()函数处理以下,在json_encode之前,把所有数组内所有内容都用urlencode()处理一下,然用json_encode()转换成json字符串,最后再用urldecode()将编码过的中文转回来。

1000) { die('possible deep recursion attack'); } foreach ($array as $key => $value) { if (is_array($value)) { arrayRecursive($array[$key], $function, $apply_to_keys_also); } else { $array[$key] = $function($value); } if ($apply_to_keys_also && is_string($key)) { $new_key = $function($key); if ($new_key != $key) { $array[$new_key] = $array[$key]; unset($array[$key]); } } } $recursive_counter--; } /************************************************************** * * 将数组转换为JSON字符串(兼容中文) * @param array $array 要转换的数组 * @return string 转换得到的json字符串 * @access public * *************************************************************/ function JSON($array) { arrayRecursive($array, 'urlencode', true); $json = json_encode($array); return urldecode($json); } $array = array ( 'Name'=>'希亚', 'Age'=>20 ); echo JSON($array); ?>

 

这次成功了,运行结果如下:

{"Name":"希亚","Age":"20"}

posted on
2013-08-27 14:06 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/yizhou35/p/3284778.html

你可能感兴趣的文章
工具类(为控件设置圆角) - iOS
查看>>
自定义android的tab样式
查看>>
查询 哪张表 有某字段
查看>>
leetcode700
查看>>
IOS 多线程编程指南【中文完整翻译版】(转载)
查看>>
如何取消异步等待
查看>>
Django框架 之 Cookie和Session初识
查看>>
oracle 删除归档日志
查看>>
网站优化怎样的外链能轻松收录,网站外链优化攻略
查看>>
Linux主要目录
查看>>
【转】http-equiv="X-UA-Compatible" 设置IE浏览器兼容模式详解
查看>>
Tex与PDF
查看>>
系统吞吐量
查看>>
css-原理详解
查看>>
51nod 1082 与7无关的数【打表/预处理】
查看>>
HDU 1285 确定比赛名次【字典序最小的拓扑排序 + 优先队列】
查看>>
串行通信实验
查看>>
2013杭电warm up1 Rotation Lock Puzzle
查看>>
c++ 延迟执行
查看>>
svn 恢复删除文件
查看>>