首页 > 代码库 > PHP json_encode函数中需要注意的地方
PHP json_encode函数中需要注意的地方
在php中使用 json_encode() 内置函数可以使用得php中的数据更好的与其它语言传递与使用。
这个函数的功能是将数组转换成json数据存储格式:
1 <?php2 $arr=array(‘name‘=>‘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 <?php2 $arr=array(‘name‘=>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 <?php 2 3 $arr=array(‘name‘=>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_兔子
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。