使用PHP json_encode时输出阿拉伯语(Unicode)字符

时间:2012-01-08 10:34:19

标签: php json unicode arabic

我正在使用json_encode编码阿拉伯语(Unicode)文本,即将每个字母转换为字符串,如\ u0627 \ u0644 \ u064a \ u062a \ u062a \ u0627 \ u0627 \ u062a。

这对我来说很烦人,并且大大增加了输出的大小。

我需要一个简单的解决方案来正确输出文本而不将其转换为如上所述的奇怪的长字符。

我的输入数组是:

$array = array(1 => 'اللغة', 2 => 'العربية', 3 => 'تحوّل إلى', 4 => 'جيسون');

我从json_encode得到的输出:

{"1":"\u0627\u0644\u0644\u063a\u0629","2":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","3":"\u062a\u062d\u0648\u0651\u0644 \u0625\u0644\u0649","4":"\u062c\u064a\u0633\u0648\u0646"}

虽然我希望结果如下:

{"1":"اللغة","2":"العربية","3":"تحوّل إلى","4":"جيسون"}

2 个答案:

答案 0 :(得分:2)

您要求使用JSON,因此您获得了JSON:在JSON中,某些unicode字符应该以这种方式表示:http://tools.ietf.org/html/rfc4627#section-2.5

除此之外,现在这几个字节并不重要。

答案 1 :(得分:1)

在json_encode()

中使用JSON_UNESCAPED_UNICODE