Все статьи

Unicode Escape: что означают последовательности \uXXXX

Кириллица целиком помещается в базовую многоязычную плоскость Unicode (диапазон U+0400–U+04FF), поэтому каждая русская буква — в отличие от большинства эмодзи — превращается ровно в один escape-код вида \u0440, а не в суррогатную пару.

Как выглядит русское слово в escape-виде

Слово «Привет» в JSON с принудительным экранированием non-ASCII превращается в шесть последовательных кодов — по одному на букву, без единого «лишнего» символа для составных форм, потому что в кириллице, в отличие от деванагари или тайского письма, нет отдельных комбинируемых диакритических знаков.

Почему API часто отдают кириллицу именно так

Многие серверные библиотеки сериализации JSON по умолчанию экранируют всё, что выходит за пределы ASCII, — это исторически связано с проблемами старых терминалов и логов, не поддерживавших UTF-8 напрямую. Из-за этого ответ API на русском языке нередко выглядит как нечитаемая стена \uXXXX-кодов, хотя сами данные полностью корректны.

Когда это нужно

  • Прочитать «по-человечески», какой русский текст скрывается за escape-кодами в JSON-ответе API.
  • Подготовить строку для среды, не принимающей символы вне ASCII.
  • Диагностировать проблемы с кодировкой при работе с внешними данными.

Отличие от эмодзи: суррогатные пары тут не нужны

Эмодзи и часть редких иероглифов лежат за пределами базовой плоскости и кодируются в UTF-16 двумя escape-кодами — суррогатной парой вида \ud83d\ude00. Кириллица в этом смысле «проще»: она целиком умещается в базовую плоскость, поэтому один видимый символ всегда соответствует ровно одному escape-коду, без риска разбить пару при обрезке строки.

Попробовать инструмент