Кодирование
Unicode Escape
Кодирование и декодирование Unicode-последовательностей — символы в виде \uXXXX и обратно.
A Unicode escape sequence (\uXXXX) writes a character as its code point instead of the character itself — so a string literal in code can contain any Unicode character while the source file itself stays plain ASCII.
How to use it
- Encode: paste text and every non-ASCII character gets replaced with its matching \uXXXX sequence.
- Decode: paste a string containing \uXXXX sequences to get plain, readable text back.
- Characters outside the Basic Multilingual Plane (most emoji) are encoded as a surrogate pair of two sequences.
Common uses
- Reading JSON or JS code where non-ASCII text was pre-escaped into \uXXXX for compatibility.
- Inserting a character that's not on the keyboard into code via an explicit Unicode escape.
- Debugging why a string with an emoji shows up as two odd characters — recognizing a surrogate pair.
Things to keep in mind
\uXXXX encodes exactly one 16-bit UTF-16 unit, not one visible character — characters outside the Basic Multilingual Plane (most emoji) need two such sequences together (a surrogate pair).
JSON only requires escaping for control characters and a few special characters — escaping every character as \uXXXX isn't required, though it is valid.
Статья об этом инструменте: Unicode Escape: что означают последовательности \uXXXX
Часто задаваемые вопросы
Что означает форма \uXXXX?
Это escape-последовательность, где XXXX — шестнадцатеричный код символа в Unicode (например, \u00e9 — это «é»). Такой формат используется в JS-строках, JSON и других языках для представления символов, которые сложно или небезопасно вставлять напрямую.
Почему для эмодзи получается два \uXXXX подряд?
Символы за пределами BMP (Basic Multilingual Plane) — многие эмодзи и редкие иероглифы — не помещаются в один 16-битный код \uXXXX и кодируются суррогатной парой из двух последовательностей. Это стандартное поведение UTF-16, а не ошибка.
Данные обрабатываются на сервере?
Нет, кодирование и декодирование выполняются полностью в браузере, без отправки текста куда-либо.
Что произойдёт, если суррогатную пару разделить пополам?
Получится некорректный символ-«сирота» — одинокий код без парного. Большинство парсеров либо отклонят такую строку с ошибкой, либо отобразят символ-заглушку «�».
Можно ли закодировать символ эмодзи одним \uXXXX?
Нет, если эмодзи лежит за пределами базовой многоязычной плоскости (а большинство современных эмодзи именно такие) — для него всегда нужна суррогатная пара из двух \uXXXX-последовательностей.