我们基本的解决方案就是在服务器端转化前对中文进行转码,比如JSON功能或者进行进制转换,然后客户端进行相应的转换,我们还是需要寻找更快速的方式,或者最好是PHP的JSON扩展能够直接支持中文,那就最好了。
今天我就小试了一下PHP 5.2 内置了JSON功能,JSON主要是用于Ajax里面的远程访问时候的数据交换格式,可以说是用来在Ajax中取代XML格式的一个轻量级数据交换格式,潜力不容小瞧,因为Google Maps就是抛弃XML而使用JSON的典型例子。#t#
想了解JSON,可以查看这里查看更多文章,同时想了解关于格式定义可以参考JSON官方网站,关于更多JSON的资料请Google。
复制
<?php //对象 class JsonTest{ var $id = 1; var $name = 'heiyeluren'; var $gender = '男'; } $obj = new JsonTest; echo json_encode($obj)."<br /> "; //数字索引数组 $arr1 = array(1, 'heiyeluren', '男'); echo json_encode($arr1)."<br /> "; //关联索引数组 $arr2 = array("id"=>1, "name"=>'heiyeluren', "gender"=>'男'); echo json_encode($arr2)."<br /> "; //多维数字索引数组 $arr3 = array(array(1, 'heiyeluren', '男'), array(1, 'heiyeluren', '男')); echo json_encode($arr3)."<br /> "; //关联索引数组 $arr4 = array(array("id"=>1, "name"=>'heiyeluren', "gender"=>'男'), array("id"=>1, "name"=>'heiyeluren', "gender"=>'男')); echo json_encode($arr4)."<br /> "; ?> 浏览器输出: {"id":1,"name":"heiyeluren","gender":""} [1,"heiyeluren",""] {"id":1,"name":"heiyeluren","gender":""} [[1,"heiyeluren",""],[1,"heiyeluren",""]] [{"id":1,"name":"heiyeluren","gender":""},{"id":1,"name":"heiyeluren","gender":""}]
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
按照JSON功能定义,我们可以发现上面的几个特点:
1. 纯的数字索引是按照JavaScript能够识别的数组来存储的
2. 关联索引数组是按照JavaScript对象的形式来构造的
3. 多维关联索引是按照外围是JavaScript数组,中间的索引数组是对象
4. 无法识别中文,所有的中文字符串显示为空