Skip to content

Конвертер Unicode

Вставьте любую запись Unicode и прочитайте её как текст: \uXXXX, скобки ES6, кодовые точки U+ и байты UTF-8 распознаются автоматически, а все остальные представления выводятся сразу. Всё выполняется локально в браузере.

Без отслеживания Работает в браузере Бесплатно

Всё выполняется в вашем браузере — введённые данные никуда не отправляются, не пишутся в логи и не сохраняются.

0 симв.
Читаемый текст
Здесь появится результат
Нормализовать
Все представления сразу
JavaScript / Java / JSON uXXXX
ES6 u{XXXXX}
Python uXXXX / UXXXXXXXX
Go uXXXX / UXXXXXXXX
Rust u{XXXXX}
Кодовая точка U+XXXX
HTML, десятичная &#NNNNN;
HTML, шестнадцатеричная &#xXXXX;
URL-кодирование %XX
CSS XXXXXX
Байты UTF-8 hex
Кодовые единицы UTF-16 hex
UTF-32 hex
Восьмеричные байты NNN
Десятичные кодовые точки NNNNN
Символ за символом
Символ Кодовая точка UTF-8 UTF-16 Письменность Категория Название
Здесь появится результат

Краткая справка

Символ Кодовая точка JavaScript / Java / JSON Байты UTF-8 URL-кодирование HTML, десятичная
中文 U+4E2D U+6587 \u4E2D\u6587 E4 B8 AD E6 96 87 %E4%B8%AD%E6%96%87 中文
😀 U+1F600 \uD83D\uDE00 F0 9F 98 80 %F0%9F%98%80 😀
A U+0041 A 41 A A
U+3000 U+3000 \u3000 E3 80 80 %E3%80%80  
Каждое преобразование в справочной таблице перед публикацией сверено между двумя независимыми реализациями. — Команда инженеров Go-Tools · Aug 27, 2026

Поведение проверено на Node, Python, Java, Go и настоящем браузерном движке, а не выведено из документации.

Что такое escape-последовательность Unicode?

Escape-последовательность Unicode записывает символ одними только ASCII-знаками, чтобы он пережил системы, которые не умеют переносить сам символ. У одного и того же символа почти в каждом языке своя запись: JavaScript и JSON пишут по четыре шестнадцатеричные цифры на кодовую единицу UTF-16, ES6 и Rust берут кодовую точку целиком в фигурные скобки, у Python и Go есть ещё широкая восьмизначная форма, CSS обходится одной обратной косой чертой, а у HTML свои числовые и именованные ссылки. Все они описывают одну и ту же кодовую точку — поэтому одна строка приходит к вам то в одном, то в другом обличье.

中文
  U+4E2D U+6587         code point
  \u4E2D\u6587          JavaScript / Java / JSON
  \u{4E2D}\u{6587}      ES6 / Rust
  E4 B8 AD E6 96 87     UTF-8
  %E4%B8%AD%E6%96%87    URL
  中文      HTML

Что умеет этот конвертер

Сам определяет запись

Escape-последовательности, фигурные скобки, широкая форма, кодовые точки, сущности, процентное кодирование и цепочки байтов распознаются без переключения режима.

Переживает смешанный ввод

Меняются только закодированные части. Пунктуация JSON, пути Windows и уже экранированные обратные косые черты остаются как есть.

Все представления сразу

Одна вставка даёт всю таблицу, так что конвертировать дважды ради перехода с одного языка на другой не придётся.

Правильно для каждого языка

Символы за пределами BMP записываются широкой формой для Python и Go, где суррогатная пара не сработает.

Разбор на уровне символа

Кодовая точка, байты UTF-8 и UTF-16, письменность и категория для каждого символа, а также название Unicode для тех символов, у которых оно есть.

Показывает невидимые символы

Метки порядка байтов, соединители нулевой ширины и неразрывные пробелы получают видимую замену.

Примеры

Разобрать строку лога, не трогая всё остальное

{"msg":"\u4e2d\u6587 failed","code":500}
{"msg":"中文 failed","code":500}

Меняются только escape-последовательности. Кавычки, ключи и числа остаются ровно такими, какими были, поэтому можно вставить целую строку лога, а не выковыривать escape-последовательности по одной.

Несколько разных записей в одной вставке

U+4E2D  \u{1F600}  中  \ud83d\ude00
中  😀  中  😀

Кодовая точка, фигурная запись ES6, HTML-сущность и суррогатная пара декодируются за один проход. Ничего не пришлось предварительно выделять или настраивать.

Один символ во всех представлениях

\u4E2D        JavaScript / Java / JSON
\u{4E2D}      ES6 / Rust
U+4E2D        code point
E4 B8 AD      UTF-8
\344\270\255  octal

Один и тот же символ, записанный так, как его ждёт каждый язык. Учтите, что Python и Go для символов за пределами BMP требуют широкую восьмизначную форму: суррогатная пара не скомпилируется в Go и вызовет UnicodeEncodeError в Python.

Как использовать

  1. 1

    Вставьте

    Escape-последовательности, кодовые точки, сущности, закодированные байты или обычный текст. Уточнять, что именно это, не нужно.

  2. 2

    Прочитайте результат

    Читаемый текст появляется сразу, рядом отмечено, какие представления были распознаны.

  3. 3

    Скопируйте нужную форму

    Под результатом перечислены все представления, у каждого своя кнопка копирования.

  4. 4

    Разберите, если что-то не так

    Откройте посимвольную таблицу с кодовыми точками, байтами, письменностью и названиями, а «Показать невидимые символы» вытащит наружу спрятанное.

Ошибки, о которых стоит знать

Суррогатная пара там, где язык ждёт широкую форму

Пара, которая работает в JSON, превращается в две сломанные половины в Python и отказывается компилироваться в Go. Для символов выше U+FFFF используйте широкую форму.

✗ Неверно
\ud83d\ude00
✓ Верно
\U0001F600

Числовые ссылки HTML прочитаны как обычные кодовые точки

Ссылки между 128 и 159 нужно читать через windows-1252. Наивная реализация превращает правую одинарную кавычку в невидимый управляющий символ — именно поэтому в старой выгрузке на этих местах не отображается ровным счётом ничего.

✗ Неверно
’  ->  U+0092
✓ Верно
’  ->  U+2019

Короткая запись CSS перед шестнадцатеричным символом

Парсер продолжает есть шестнадцатеричные цифры, поэтому запись и следующий символ сливаются в одну неверную кодовую точку. Дополняйте до шести цифр.

✗ Неверно
\4E2Da
✓ Верно
\004E2Da

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

Чтение логов
В логах сервера и ответах API не-ASCII часто приходит экранированным. Вставьте строку и прочитайте её, ничего заранее не правя.
Перенос строк между языками
Скопируйте запись ровно в той форме, которую принимает целевой язык, вместо ручного перевода между суррогатными парами и широкой формой.
Поиск ошибки кодирования
Когда сравнение не проходит или база отклоняет значение, посимвольная таблица показывает, какие именно кодовые точки и байты в этом участвуют.
Чистка вставленного текста
Текст, скопированный с веб-страницы или из документа, часто тащит за собой невидимые символы. Найдите их до того, как они доедут до продакшена.

Технические детали

Кодовые единицы UTF-16, а не символы
JavaScript, Java и JSON экранируют кодовые единицы UTF-16, поэтому символу выше U+FFFF нужны две escape-последовательности. У Python и Go вместо этого есть восьмизначная форма, которая принимает кодовую точку напрямую.
Числовые ссылки HTML переотображаются
Спецификация HTML требует читать числовые ссылки в диапазоне от 128 до 159 через windows-1252, а не как кодовые точки, поэтому ссылка с номером 146 — это правая одинарная кавычка, а не невидимый управляющий символ.
Записи CSS нужно дополнять до шести цифр
Запись CSS съедает до шести шестнадцатеричных цифр, поэтому короткая запись, за которой идёт шестнадцатеричный символ, сливается с ним в одну неверную кодовую точку. Дополнение до шести цифр снимает неоднозначность, а идущий следом пробел съедается как ограничитель.
Непарные суррогаты ведут себя везде по-разному
Непарный суррогат сохраняется при сериализации в JSON, молча заменяется в TextEncoder, отвергается процентным кодированием, записывается знаком вопроса в Java и вызывает ошибку в Python.

Лучшие практики

Нормализуйте перед сравнением
Приводите обе стороны к одной форме нормализации перед сравнением или дедупликацией, особенно для имён и идентификаторов.
Для Python и Go берите широкую форму
Суррогатная пара допустима в JSON, но ломается в обоих языках. Для исходников Python и Go используйте восьмизначную запись.
Проверяйте невидимые символы заранее
Валидируйте вставленный текст на границе системы, а не отлаживайте расхождение потом.
Держите оригинал под рукой
Декодирование не всегда обратимо без потерь: как только появились символы замены, вернуться уже некуда. Сохраняйте исходное значение, пока не убедитесь в результате.

Часто задаваемые вопросы

Что означает \u4e2d\u6587 и как это прочитать?
Каждая запись вида \uXXXX — это одна кодовая единица UTF-16, записанная шестнадцатеричными цифрами. \u4e2d — это U+4E2D, а \u6587 — U+6587; вместе они складываются в китайское слово «中文». Вставьте всю строку в поле выше, и вернётся читаемый текст, а окружающий JSON или текст лога останется нетронутым.
Обратные косые черты потерялись, остался голый u4e2d. Это ещё можно декодировать?
Да. Терминалы и конвейеры логов часто съедают обратные косые черты. Голая последовательность u4e2du6587 распознаётся и декодируется, а обычные слова, в которых просто встречается буква u, остаются нетронутыми.
Почему одно эмодзи записано двумя escape-последовательностями?
Символы выше U+FFFF не помещаются в одну кодовую единицу UTF-16, поэтому JavaScript, Java и JSON записывают их суррогатной парой. Улыбающееся лицо — это одна кодовая точка, две кодовые единицы UTF-16 и четыре байта UTF-8. Посимвольная таблица показывает все три числа.
Как сделать наоборот — превратить текст в escape-последовательности?
Введите или вставьте обычный текст и посмотрите таблицу под результатом. Все представления строятся сразу, поэтому нужную форму достаточно скопировать, а не конвертировать дважды.
Две строки выглядят одинаково, но код считает их разными. Почему?
Скорее всего, они нормализованы по-разному. Буква с диакритикой может быть одной кодовой точкой, а может — базовой буквой плюс комбинирующим знаком; выглядят они одинаково, но не равны. Кнопка NFC сводит обе к одной форме. Учтите, что для иероглифов нормализация тоже не пустая операция: иероглифы совместимости меняются под обычным NFC.
В строке что-то невидимое ломает код. Как это найти?
Включите «Показать невидимые символы». Метки порядка байтов, пробелы нулевой ширины, неразрывные пробелы и селекторы вариантов получат видимую замену, а посимвольная таблица назовёт каждый из них и покажет его байты.
Мои данные куда-нибудь загружаются?
Нет. Конвертация идёт в вашем браузере, без единого сетевого запроса. Ничего не отправляется, не пишется в логи и не сохраняется, так что вставлять боевые логи безопасно.

Похожие инструменты

Все инструменты →

Base64 декодер и кодировщик

Кодирование и форматирование

Декодирование и кодирование Base64 онлайн бесплатно. Преобразование в реальном времени с полной поддержкой UTF-8 и эмодзи. Полная приватность — работает в браузере. Без регистрации.

Конвертер Base64 в изображение

Кодирование и форматирование

Декодируйте строку Base64 или data URI обратно в изображение прямо в браузере. Предпросмотр, размеры и MIME, затем скачивание как PNG, JPG, GIF, SVG. Без загрузки.

Конвертер CSV в JSON

Кодирование и форматирование

Конвертируйте CSV в JSON в браузере. RFC 4180, определение типов, заголовок, безопасность больших целых. 100% приватно, без загрузки.

Конвертер .env в JSON

Кодирование и форматирование

Вставьте файл .env — получите JSON мгновенно. Пароли БД, API-ключи и токены не покидают браузер: 100% приватно, без загрузки, парсер dotenv.

Бесплатный HTML-декодировщик сущностей — unescape HTML

Кодирование и форматирование

Декодируйте HTML-сущности и снимайте экранирование HTML онлайн — бесплатно, без регистрации, 100% в браузере. Преобразует именованные, десятичные и hex-ссылки обратно в символы; данные не загружаются.

Бесплатный HTML-кодировщик сущностей — экранирование HTML

Кодирование и форматирование

Кодируйте HTML-сущности и экранируйте спецсимволы (< > & " ') онлайн — бесплатно, без регистрации, 100% в браузере. Именованный, десятичный или шестнадцатеричный вывод; данные не загружаются.