码迷,mamicode.com
首页 > Web开发 > 详细

PHP json_encode函数中需要注意的地方

时间:2014-08-06 17:25:31      阅读:248      评论:0      收藏:0      [点我收藏+]

标签:blog   http   使用   io   数据   for   ar   代码   

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

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

1 <?php
2     $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 <?php
2     $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编码返回 返回值:字符串
bubuko.com,布布扣
 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 ?>
bubuko.com,布布扣

输出结果:

1 Balla_兔子

 

PHP json_encode函数中需要注意的地方,布布扣,bubuko.com

PHP json_encode函数中需要注意的地方

标签:blog   http   使用   io   数据   for   ar   代码   

原文地址:http://www.cnblogs.com/huidaoli/p/3894555.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!