Кодирование

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

Common uses

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-последовательностей.

Статьи: Кодирование

Base64: зачем нужно кодирование и как оно работает

Как Base64 превращает бинарные данные в текст ASCII и где это реально нужно.

Base32: чем отличается от Base64 и когда удобнее

Регистронезависимый алфавит Base32 и сценарии, где он удобнее Base64.

URL Encode/Decode: percent-encoding в ссылках

Как спецсимволы в адресной строке и query-параметрах превращаются в %XX-последовательности.

HTML Entities: как безопасно выводить спецсимволы на странице

Почему символы < > & нужно экранировать и как это предотвращает поломку разметки.

JWT: структура токена и что значит «декодировать» JWT

Header, payload и signature JWT-токена и почему декодирование — не то же самое, что проверка подписи.

ROT13 и шифр Цезаря: простая замена символов

Почему сдвиг на 13 букв делает ROT13 симметричным и зачем его вообще используют сегодня.

Punycode: как домены с кириллицей работают в DNS

Как домен вроде «пример.рф» превращается в ASCII-запись с префиксом xn--.

Азбука Морзе: как текст превращается в точки и тире

Принцип кодирования букв точками и тире и где азбука Морзе применяется сейчас.

Data URI: когда встраивать изображения прямо в код

Как data:-URI встраивает содержимое файла прямо в HTML или CSS и когда это оправдано.

Gzip + Base64: сжатие данных для передачи текстом

Зачем сжатые бинарные данные ещё и кодируют в Base64 перед тем, как поместить в текстовое поле.

XML Entities: экранирование символов в XML-документах

Пять обязательных XML-entity, без которых документ ломается при парсинге.