Конвертер Unicode

Экранируйте текст как последовательности JavaScript \uXXXX / \u{HEX}, декодируйте смешанные экранирования обратно в текст и изучайте каждый символ как кодовую точку: U+ hex, десятичное число, байты UTF-8, единицы UTF-16 и экранирования JS. Астральные кодовые точки (эмодзи) никогда не разделяются на половинки суррогатов.
Вся обработка выполняется локально в вашем браузере — ваши данные никогда не загружаются ни на один сервер.
Стиль экранирования:
Кодирование: текст разбивается на кодовые точки Unicode (так что эмодзи остаются целыми), и каждая записывается как последовательность экранирования JavaScript.
Декодирование: каждая последовательность \uXXXX, \u{hex} или U+hex (в верхнем или нижнем регистре) превращается в свой символ. Соседние экранирования суррогатных пар объединяются в одну кодовую точку. Неэкранированный текст проходит без изменений.
Инспектор: каждая кодовая точка становится одной строкой, разделённой табуляцией: символ, U+HEX, десятичное число, байты UTF-8, единицы UTF-16 и экранирование JS. Всю таблицу можно скопировать из результата или скачать.
Ctrl+Enter во вводе запускает активный режим.
Выберите «Кодировать», «Декодировать» или «Инспектор» и запустите его. Вся обработка остаётся в вашем браузере.
Как читать столбцы инспектора:
U+HEX — кодовая точка в шестнадцатеричном виде; десятичное число — то же число в десятичной системе. Байты UTF-8 показывают от одного до четырёх байтов, которые занимает символ при записи в UTF-8 (например, 中 = E4 B8 AD). UTF-16 показывает одну или две 16-битные единицы, которые символ занимает внутри строки JavaScript (эмодзи за пределами U+FFFF требуют двух единиц, «суррогатной пары»: например, U+1F600 = D83D DE00). JS escape — рекомендуемая форма символа для исходного кода.
Что загружает кнопка «Пример»:
Пример, относящийся к вашему режиму, а не один фиксированный текст, потому что один текст не подходит всем трём. Кодирование и Инспектор принимают обычные символы, поэтому они получают Hello 中文! 🎉 — ASCII, CJK, полноширинный знак и один эмодзи. Декодирование принимает последовательности экранирования, а обычное предложение их не содержит: оно вернулось бы слово в слово, и режим показать было бы нечего, поэтому декодирование получает Say \u4e2d\u6587 \u{1F600} U+0041 \uD83C\uDF89 OK, в котором есть по одной из всех форм, которые понимает декодер (пара \uXXXX в нижнем регистре, фигурные скобки \u{HEX}, форма U+hex, соседняя суррогатная пара и слова, которые не являются экранированиями). Строка под полями указывает, какой результат искать; при кодировании она также учитывает стиль экранирования и флажок ASCII, поэтому три другие формы можно увидеть, нажимая «Пример» снова.
Что такое Unicode?

Unicode — это единый каталог, который присваивает каждому символу каждой системы письма номер, его кодовую точку, от U+0000 до U+10FFFF — 1 114 112 возможных мест, расположенных в 17 плоскостях по 65 536. Первая плоскость, Basic Multilingual Plane (BMP), содержит символы большинства живых языков; большинство эмодзи и многие исторические письменности находятся на старших («астральных») плоскостях.

UTF-8, UTF-16 и UTF-32 — это не конкурирующие наборы символов, а три способа сериализовать эти числа в байты: режим инспектора показывает все три для одного и того же символа рядом с формами экранирования JavaScript.

Unicode называет и нумерует символы; UTF-8/UTF-16/UTF-32 и экранирования \uXXXX — это просто разные способы записать одни и те же числа.