php encode_json用外语

时间:2013-04-21 20:10:17

标签: php

json_encode解码utf8:

$arr = Array(
        'name' => 'ბინტი',
        'count' => '15');
 $result = utf8_encode(json_encode($arr));
 echo $result;

结果是

{"name":"\u10d1\u10d8\u10dc\u10e2\u10d8","count":"15"}

任何人都可以帮忙吗? P.S 对不起外语,我无法发布带有正确标题的问题

2 个答案:

答案 0 :(得分:1)

这是完全可以预料到的。具有奇异字符的外语不适合基本ASCII,因此JSON使用一些编码序列(\u + 4个十六进制(unicode序列))来表示您的字符。解码时,unicode序列被转换回真正的unicode字符。

这样做的好处是,在存储和读取JSON时不会出现编码问题。

答案 1 :(得分:0)

我测试了你的角色,使用这个javascript代码:

   <script type="text/javascript">
     var a = "\u10d1\u10d8\u10dc\u10e2\u10d8"
     alert(a);
   </script>

Firefox打印了这条消息:

enter image description here

如您所见,您的格鲁吉亚角色还可以。所以,json_encode工作正常。顺便说一句:

$result = json_encode($arr);

产生与

相同的结果
$result = utf8_encode(json_encode($arr));