我使用json_encode来编码阿拉伯文(Unicode)文本,即将每个字母转换为像\ u0627 \ u0644 \ u0633 \ u064a \ u0627 \ u0631 \ u0627 \ u062a。使用PHP输出阿拉伯文(Unicode)字符的原因json_encode
这对我来说很烦人,并且显着增加了输出的大小。
我需要一个简单的解决方案来正确输出文本,而不会将其转换为上面那些奇怪的长字符。
我输入数组是:
$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":"جيسون"}
+1
我明白你为什么做了这一点,并欣赏你的努力。但不幸的是,这不是真正的问题(而是某种基于知识的项目),因此对于stackoverflow的Q&A格式没有用处。如果您可以将其重新格式化为一个问题,那么您可以在一段时间后自行回答它(或者可能有人想出了另一个更好的主意) –
2012-01-08 10:41:51
+0
您正在寻找'JSON_UNESCAPED_UNICODE'选项。自PHP 5.4起可用或使用upgradephp的第17版(经过测试转换)。 –
2012-01-08 13:45:48
+0
这似乎是一个真正的问题,因为它有一个真正的答案(使用'JSON_UNESCAPED_UNICODE'),并且因为预期的输出实际上是有效的JSON。 (对于字符转义,PHP显然过于热衷)。 –
2014-05-12 20:23:53