Unicode Калькулятор
Ввод данных и настройки
Результат преобразования
Генератор кодов Unicode: Онлайн-калькулятор для преобразования текста
Unicode Калькулятор — это профессиональный инженерный инструмент для точного преобразования текста в числовые кодовые точки стандарта Unicode и обратно.
Он выполняет функции генератора и декодера кодов, работая с десятичной, шестнадцатеричной и двоичной системами счисления.
Инструмент незаменим для разработчиков, тестировщиков, специалистов по информационной безопасности и инженеров.
Инструкция по использованию калькулятора
Интерфейс калькулятора разделен на две логические зоны: для ввода данных и настроек и для вывода результата.
Работа строится по следующему алгоритму:
- Выберите режим работы. «Кодировать текст в цифры» преобразует символы в последовательность числовых кодов Unicode. «Декодировать цифры в текст» выполняет обратное преобразование.
- Задайте систему счисления для кодов. Доступны десятичный, шестнадцатеричный или двоичный код.
- Введите данные. В режиме кодирования в поле введите любую строку. В режиме декодирования введите числовые коды, разделенные указанным разделителем.
- Определите разделитель кодов. По умолчанию используется пробел. Можно указать запятую, точку с запятой или любой другой символ. Важно: разделитель не может быть пустой строкой.
- Нажмите «Преобразовать». Результат появится в правой части интерфейса. Его можно скопировать в буфер обмена соответствующей кнопкой.
Калькулятор работает в реальном времени. Результат обновляется автоматически при изменении входных данных или настроек.
Содержание
Математическая логика и алгоритм преобразования
В основе работы калькулятора лежат стандартные методы JavaScript для работы с кодовыми точками Unicode, что соответствует спецификациям ECMAScript.
1. Кодирование текста (Текст → Код):
Для каждого символа входной строки определяется его кодовая точка Unicode (code point) — уникальный числовой идентификатор.
Алгоритм использует метод String.prototype.codePointAt(index).
Для базовой многоязычной плоскости (BMP, символы до U+FFFF) это один числовой код.
Для символов за пределами BMP используется одна кодовая точка (суррогатные пары обрабатываются автоматически).
Полученное целое число конвертируется в выбранную систему счисления:
- В десятичную:
codePoint.toString(10)- В шестнадцатеричную:
codePoint.toString(16).toUpperCase()- В двоичную:
codePoint.toString(2)Результаты для каждого символа объединяются в строку с использованием заданного разделителя.
2. Декодирование кодов (Код → Текст):
Входная строка разбивается на массив подстрок с помощью заданного разделителя (String.split(delimiter)).
Каждая подстрока интерпретируется как число в указанной системе счисления:
- Из десятичной:
parseInt(codeStr, 10)- Из шестнадцатеричной:
parseInt(codeStr, 16)- Из двоичной:
parseInt(codeStr, 2)Перед преобразованием выполняется валидация:
- Проверка, что результат парсинга — целое неотрицательное число (
Number.isInteger(codePoint) && codePoint >= 0).- Проверка, что код находится в допустимом диапазоне Unicode (
codePoint <= 0x10FFFF).- Проверка, что код не попадает в изолированный диапазон суррогатных пар (
codePoint < 0xD800 || codePoint > 0xDFFF).Валидная кодовая точка преобразуется в символ с помощью функции String.fromCodePoint(codePoint).
Полученные символы объединяются в результирующую строку.
Практические примеры (Case Studies)
Пример 1: Кодирование технического сообщения для отладки передачи данных.
Задача: Подготовить для логирования шестнадцатеричные коды строки "Ошибка: #404", передаваемой по каналу с двоичной кодировкой.
Действия в калькуляторе:
- Режим: Кодировать текст в цифры.
- Система счисления: Шестнадцатеричный код.
- Исходный текст:
Ошибка: #404. - Разделитель: Пробел (по умолчанию).
Результат: 41E 448 438 431 43A 430 3A 20 23 34 30 34
Анализ: Каждый символ, включая кириллические буквы, двоеточие, пробел и цифры, получил свой уникальный hex-код в кодировке UTF-16.
Пример 2: Декодирование двоичного дампа памяти для анализа.
Задача: Расшифровать последовательность двоичных кодов, извлеченную из дампа.
Коды: 1001000 1100101 1101100 1101100 1101111 0100000 1010111 1101111 1110010 1101100 1100100.
Действия в калькуляторе:
- Режим: Декодировать цифры в текст.
- Система счисления: Двоичный код.
- Исходные коды: Вставить приведенную последовательность.
- Разделитель: Пробел.
Результат: Hello World
Анализ: Калькулятор корректно интерпретировал каждый двоичный блок как код ASCII/Unicode, восстановив оригинальную текстовую строку.
Справочная таблица: Коды Unicode для часто используемых символов
В таблице ниже приведены примеры кодовых точек для основных типов символов в трех системах счисления.
| Символ / Описание | Десятичный код | Шестнадцатеричный код | Двоичный код (16 бит) |
|---|---|---|---|
| Латинская заглавная A | 65 | 41 | 1000001 |
| Цифра «0» | 48 | 30 | 110000 |
| Кириллическая заглавная «А» | 1040 | 410 | 10000010000 |
| Символ новой строки (LF) | 10 | A | 1010 |
| Символ табуляции | 9 | 9 | 1001 |
| Эмодзи «😀» (Grinning Face) | 128512 | 1F600 | 11111011000000000 |
| Спецсимвол «€» (Евро) | 8364 | 20AC | 10000010101100 |
Примечание: Двоичное представление в таблице усечено для удобства чтения. Фактическая длина может быть больше, особенно для кодовых точек выше U+FFFF.
Ответы на часто задаваемые вопросы (FAQ)
1. В чем отличие этого калькулятора от простого конвертера ASCII?
Данный инструмент работает со всем диапазоном Unicode (до U+10FFFF), включая кириллицу, иероглифы, специальные символы и эмодзи.
Простые конвертеры часто ограничены таблицей ASCII (127 символов) или расширенной Latin-1 (255 символов).
2. Какой разделитель кодов лучше использовать?
Для совместимости с другими системами и языками программирования рекомендуются:
- Пробел: Универсальный вариант, легко читается.
- Запятая (
,): Часто используется в CSV-файлах и массивах. - Точка с запятой (
;): Подходит для случаев, где запятая может быть частью данных.
Избегайте использования символов, которые могут встречаться в самих кодах.
3. Почему при декодировании возникает ошибка «Код находится в диапазоне суррогатных пар»?
Unicode резервирует диапазон U+D800–U+DFFF для суррогатных пар, используемых в кодировке UTF-16.
Эти значения не являются валидными изолированными кодовыми точками.
Если вы видите эту ошибку, вероятно, данные были некорректно извлечены из UTF-16 потока без учета парности суррогатов.
4. Можно ли с помощью этого калькулятора кодировать текст в UTF-8?
Нет, напрямую — нет. Данный калькулятор преобразует символы в их кодовые точки Unicode, которые являются абстрактными номерами.
UTF-8 — это способ сериализации этих кодовых точек в байтовую последовательность.
5. Инструмент выдает десятичный код для кириллической «А» — 1040. Почему не 192, как в старой кодировке Windows-1251?
Калькулятор работает исключительно со стандартом Unicode, который является универсальным и уникальным для каждого символа.
Десятичный код 1040 — это кодовая точка символа «А» в Unicode (U+0410).
Значение 192 соответствует коду этого символа в устаревшей и ограниченной локальной кодировке Windows-1251.