php json_encode с кириллическими символами - PullRequest
2 голосов
/ 26 июня 2011

Чтобы не изобретать колесо, я имею в виду уже существующие символы кириллицы в json_encode PHP .

Вопрос в том, что это за символы, что они означают: \ u0435, \ u0434и так далее?Я думаю, что это не имеет никакого отношения к количеству байтов, это просто серийный номер в UTF-8, который соответствует кириллическим символам "е", "д" и т. Д. Соответственно?

1 Ответ

3 голосов
/ 26 июня 2011

Это escape-последовательности Unicode, которые ссылаются на символы в наборе символов Unicode, обозначая их кодовые точки в шестнадцатеричном формате.

Из спецификации JSON :

Любой персонаж может быть экранирован.Если символ находится в базовой многоязычной плоскости (от U + 0000 до U + FFFF), то он может быть представлен в виде последовательности из шести символов: обратный солидус, за которым следует строчная буква u, за которой следуют четыре шестнадцатеричные цифры, которыезакодировать кодовую точку символа.Шестнадцатеричные буквы A, хотя F могут быть прописными или строчными.Так, например, строка, содержащая только один обратный символ солидуса, может быть представлена ​​как "\u005C".

Хотя эти символы не нужно экранировать (см. unescaped rule ), json_encode кодирует любой символ, кроме тех символов, которые также есть в US-ASCII (см. источник json.c ), чтобы избежать проблем кодирования с протоколами на основе US-ASCII.

Таким образом, внутри строки JSON, \u0435 ссылается на символ в U + 0435, который является IE кириллического малого письма (е) и\u0434 ссылается на символ в U + 0434, который является кириллическим маленьким буквой DE (д).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...