-1

json_encode 解码 utf8:

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

结果是

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

有人可以帮忙吗?ps 对不起外语我不能用正确的标题发布问题

4

2 回答 2

1

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

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

于 2013-04-21T20:18:54.780 回答
0

我使用以下 javascript 代码测试了您的角色:

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

Firefox 打印了这条消息:

在此处输入图像描述

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

$result = json_encode($arr);

产生与

$result = utf8_encode(json_encode($arr));
于 2013-04-21T20:36:25.923 回答