‘壹’ php数组转换成json格式后汉字怎么就被解析成字母了啊
让我来告诉你答案!这种户是unicode的汉字,是正常的
按照json和javascript的标准,字符串必须用unicode,不能举段也不该用GB2312,GBK,GB18030。
如果广泛应梁答穗用JSON,还是尽量用橡卜utf-8编码写东西,
如果要用GBK,就必须转码,或者把汉字base64编码后按数据传递比较安全
‘贰’ php在将数组转成json的时候,key值是中文的,乱码怎么解决!
乱码的话是因为文件的格式不正确,而网页编码是默认为文件编码格式的,JSON又是UTF-8编码,所以你的文件可能是GB2312格式,所以导致JSON内的中文乱码。
这种情况转换为UTF-8格式就可以了。
(注意,转换成无BOM格式的,记事本转换的UTF-8是带BOM的,会导致JSON无法正确解析)
‘叁’ php怎么将数组数组转化为json格式的数据
一、json_encode()
[php]view plain
<?php
$arr=array('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echojson_encode($arr);
?>
输出
[php]view plain
{"a":1,"b":2,"c":3,"d":4,"e":5}
再看一个对象转换的例子:
[php]view plain
$obj->body='anotherpost';
$obj->id=21;
$obj->approved=true;
$obj->favorite_count=1;
$obj->status=NULL;
echojson_encode($obj);
输出
[php]view plain
{
"body":"anotherpost",
"id":21,
"approved":true,
"favorite_count":1,
"status":null
}
二、索引数组和关联数组
PHP支持两种数组,一种是只保存"值"(value)的索引数组(indexed array),另一种是保存"名值对"(name/value)的关联数组(associative array)。
由于javascript不支持关联数组,所以json_encode()只将索引数组(indexed array)转为数组格式,而将关联数组(associative array)转为对象格式。
‘肆’ PHP中数组转json时汉字如何不变成Unicode编码保留汉字
$array=array(
2'test'=>衡族唯urlencode("我是测试")穗盯咐培
3);
4$array=json_encode($array);
5echourldecode($array);
‘伍’ php怎么将数组数组转化为json格式的数据
json_encode($arr);
如果数组里有中文可悉渗闭以用
json_encode($arr,
JSON_UNESCAPED_UNICODE);
这样睁裂汉字不会被喊碧转化成unicode格式
调试的时候会比较方便
‘陆’ php怎么将数组转换为json而不会使中文出现乱码
如果页面都是utf-8编码,一般不会出现乱码,如果不是utf-8,先转为utf-8。
如果想要转换的json中的中文可读的话,在json_encode之前,把所有数组内所有内容都用urlencode()处理一下,然用json_encode()转换成json字符串,最后再用urldecode()将编码过的中文转回来。
‘柒’ 怎么将php 数组转换成json
<?php
/**PHP把数组转换为JSON字符串**/
$arr=[10,'Tom',true,'2015-10-15'];
//echo$arr;
echojson_encode($arr);//编码为JSON字符串
$arr=['eid'=>10,'ename'=>'Tom','isMarried'=>true,'birthday'=>'2015-10-15'];
//echo$arr;
echojson_encode($arr);//编码为JSON字符串
//结论:索引数组会被json_encode转换为JSON数组,关联数组会被json_encode转换为JSON对象
?>
结果如下
[10,"Tom",true,"2015-10-15"]
{"eid":10,"ename":"Tom","isMarried":true,"birthday":"2015-10-15"}
‘捌’ php生成数组转成json后,在转化为对象
你可以参考一下我的建议,1.普通:若php关联数组不含有中文,直接json_encode转换。转换之后用json_deconde($stuJson)转为php对象。
<?php
$stu = array("name"=>"li","age"=>"35");
$stuJson = json_encode($stu);
还有什么疑问的话,可以多去后盾们看一下相关的视频,这样你更清楚
‘玖’ php转换成json数据格式
json和php数组 格式的互相转换,参考如下:
$php_json = json_encode($json_arr); //把php数组格式转换成 json 格式的数据
echo $php_json;
$php_json = json_decode($php_json); //再把json格式的数据转换成php数组
print_r($php_json);
json数组
$json = '[{"id":"22","name":"33","descn":"44"}]'; //json格式的数组转换成 php的数组
$arr = (Array)json_decode($json);
echo $arr[0]->id; //用对象的方式访问
‘拾’ 如何正确运用PHP json_encode函数进行中文转换
在 php 中使用 json_encode() 内置函数(php > 5.2)可以使用得 php 中数据可以与其它语言很好的传递并且使用它。这个函数的功能是卖轮将数值转换成json数据存储格式,但是转换后的中文会变成Unicode编码。x0dx0a[php] view plainprint?x0dx0a'希亚', x0dx0a 'Age'=>20 x0dx0a ); x0dx0a x0dx0a$jsonencode = json_encode($arr); x0dx0aecho $jsonencode; x0dx0a?> x0dx0a程序运行结果如下:x0dx0a[php] view plainprint?x0dx0a{"Name":null,"Age":20} x0dx0ajson_encode 函数中中文被编码成 null 了,Google 了一下,很简单,为了与前端紧密结合中侍信,Json 只支持 utf-8 编码,我认为是前端的 Javascript 也是 utf-8 的原因。x0dx0a[php] view plainprint?x0dx0aiconv('gb2312','utf-8','这里是中文标题'), x0dx0a 'body'=>'abcd...' x0dx0a ); x0dx0a x0dx0aecho json_encode($array); x0dx0a?> x0dx0a这个程序的运行结果为:x0dx0a[php] view plainprint?x0dx0a{"title":"\u8fd9\u91cc\u662f\u4e2d\u6587\u6807\u9898","body":"abcd..."} x0dx0a数组中所有中文在json_encode之后都不见了或者出现\u2353等。解决方法是用urlencode()函数处理以下,在json_encode之前,把所有数组内所有内容都用urlencode()处理一下,然用json_encode()转换成json字符串,最后再用urldecode()将编码过的中文转回来谈前。x0dx0a[php] view plainprint?x0dx0a 1000) { x0dx0a die('possible deep recursion attack'); x0dx0a } x0dx0a foreach ($array as $key => $value) { x0dx0a if (is_array($value)) { x0dx0a arrayRecursive($array[$key], $function, $apply_to_keys_also); x0dx0a } else { x0dx0a $array[$key] = $function($value); x0dx0a } x0dx0a x0dx0a if ($apply_to_keys_also && is_string($key)) { x0dx0a $new_key = $function($key); x0dx0a if ($new_key != $key) { x0dx0a $array[$new_key] = $array[$key]; x0dx0a unset($array[$key]); x0dx0a } x0dx0a } x0dx0a } x0dx0a $recursive_counter--; x0dx0a} x0dx0a x0dx0a/************************************************************** x0dx0a * x0dx0a * 将数组转换为JSON字符串(兼容中文) x0dx0a * @param array $array 要转换的数组 x0dx0a * @return string 转换得到的json字符串 x0dx0a * @access public x0dx0a * x0dx0a *************************************************************/ x0dx0afunction JSON($array) { x0dx0a arrayRecursive($array, 'urlencode', true); x0dx0a $json = json_encode($array); x0dx0a return urldecode($json); x0dx0a} x0dx0a x0dx0a$array = array x0dx0a ( x0dx0a 'Name'=>'希亚', x0dx0a 'Age'=>20 x0dx0a ); x0dx0ax0dx0aecho JSON($array); x0dx0a?> x0dx0a这次成功了,运行结果如下:x0dx0a[php] view plainprint?x0dx0a{"Name":"希亚","Age":"20"}