Вывод арабских символов (Unicode) как есть при использовании PHP json_encode - PullRequest
1 голос
/ 08 января 2012

Я использую json_encode для кодирования арабского текста (Unicode), который преобразует каждую букву в строку типа \ u0627 \ u0644 \ u0633 \ u064a \ u0627 \ u0631 \ 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 ]

2 голосов
/ 08 января 2012

Вы запрашиваете JSON и, следовательно, получаете JSON: В JSON определенные символы Юникода должны быть представлены именно таким образом: http://tools.ietf.org/html/rfc4627#section-2.5

Кроме того, эти несколько дополнительных байтов не имеют большого значенияв настоящее время.

1 голос
/ 25 июля 2016

Использовать JSON_UNESCAPED_UNICODE внутри json_encode ()

...