Json_encode ()
(PHP 5 >= 5.2.0, PECL json >= 1.2.0)
注:某些浏览器可能支持方面有些问题(例如:360,遨游);
作用:
对变量进行 JSON 编码。
说明: string json_encode ( mixed $value ) 返回 value 值的 JSON 形式。
mixed 说明一个参数可以接受多种不同的(但并不必须是所有的)类型.
待编码的 value ,除了resource 类型之外,可以为任何数据类型
该函数只能接受 UTF-8 编码的数据(译注:指字符/字符串类型的数据)
编码成功则返回一个以 JSON 形式表示的 string (字符串) 。
特别注意:
如果内容为中文,输出null!
因为json仅仅转义encoding编码 !
且js 中decodeURI 仅仅支持utf8 转码。
解决的普遍方法:
先将类中的中文字段进行url编码(urlencode),然后再对对象进行json编码(jsonencode),最后url解码(urldecode)json,即最终的json,里面的中文依旧是那个中文!
例如:
1、
<?php
foreach ($ajax as $key=>$val) { $ajax[$key]['name'] = urlencode(iconv('gb2312','utf-8',$val['name'])); } echo json_encode($json);
?>
2、
<?php foreach ($ajax as $key=>$val) { $ajax[$key]['name'] = urlencode(iconv('gb2312', 'utf-8',$val['name'])); } echo json_encode($json); ?> |