博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP json_encode函数中需要注意的地方
阅读量:5052 次
发布时间:2019-06-12

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

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

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

1 
'Balla_兔子','age'=>22);3 echo json_encode($arr);4 ?>

输出结果:

1 {"name":"","age":22}

json_encode函数中中文被编码成null了,查了下资料,很简单,为了与前端紧密结合,json只支持utf-8编码。

我们可以用iconv函数转换下编码:

1 string iconv ( string $in_charset , string $out_charset , string $str )2 Performs a character set conversion on the string str from in_charset to out_charset.//从in_charset编码转为out_charset,str为转换内容
1 
iconv('gbk', 'utf-8', 'Balla_兔子'),'age'=>22);3 echo json_encode($arr);4 ?>

输出结果:

1 {"name":"Balla_\u934f\u65bf\u74d9","age":22}

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

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

 

1  string urlencode ( string $str ) //UrlEncode:将字符串以URL编码返回 返回值:字符串
1 
urlencode('Balla_兔子'),'age'=>22); 4 5 $json=json_encode($arr); 6 7 $result=json_decode($json,true);//把json解码并转为数组 8 9 echo urldecode($result['name']);10 11 ?>

输出结果:

1 Balla_兔子

 

转载于:https://www.cnblogs.com/huidaoli/p/3894555.html

你可能感兴趣的文章
MyBATIS插件原理第一篇——技术基础(反射和JDK动态代理)(转)
查看>>
剑指Offer面试题:5.重建二叉树
查看>>
C - Woodcutters
查看>>
CF-845C
查看>>
Buffer I/O error on device sr0
查看>>
螺旋输出N*N矩阵
查看>>
02WAB入门-介绍
查看>>
git操作
查看>>
js 事件冒泡
查看>>
JSP使用过滤器防止SQL注入
查看>>
WCF初探-16:WCF数据协定之基础知识
查看>>
requirejs amd module load example
查看>>
PhoneGap + Dreamweaver 5.5 无法在模拟器中打开的问题
查看>>
实验13
查看>>
[置顶] mmsplayer V2 for IOS 完成. V2 所有汇总
查看>>
(转) JS原生对象、内置对象、宿主对象的区别
查看>>
递归插入排序
查看>>
链表-Reverse Linked List II
查看>>
牛客带你学编程-Java测试卷
查看>>
hdoj1051
查看>>