博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
json_encode 中文处理
阅读量:4629 次
发布时间:2019-06-09

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

在 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...' );echo json_encode($array);?>

这个程序的运行结果为:

{
"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"
}

转载于:https://www.cnblogs.com/moqiang02/p/4061334.html

你可能感兴趣的文章
十月回家记
查看>>
ZOJ 3735 dp
查看>>
android效果背景虚化
查看>>
jQuery效果:隐藏、显示、切换、滑动、淡入淡出、动画
查看>>
Java 学习笔记(4)——java 常见类
查看>>
IOS开源项目汇总
查看>>
用herl工具解决微信内链接或二维码可直接用外部浏览器打开
查看>>
flex--unable to transcode image
查看>>
GITHup的使用
查看>>
void main()是错的!
查看>>
Atitit. Attilax企业框架 AEF的发展里程总结
查看>>
亚麻 面经_ml
查看>>
豆瓣api
查看>>
SQL数据库无法附加 系统表损坏修复 数据库中病毒解密恢复
查看>>
JMeter的安装和使用
查看>>
Es5正则
查看>>
caller和callee的区别
查看>>
Unicode,UTF-32,UTF-16,UTF-8到底是啥关系?
查看>>
Git 版本还原命令
查看>>
简单配置nginx反向代理,实现跨域请求
查看>>