Как перевести hex в текст
- Вставьте hex-строку, например
48 65 6C 6C 6F,0x48,0x65или\x48\x65. Разделители можно смешивать как угодно. - Расшифрованный текст появляется мгновенно. Если вместо букв видны «кракозябры», выберите другую кодировку: UTF-8, ASCII/Latin-1 или UTF-16.
- Скопируйте текст или скачайте его файлом. Нажмите Поменять местами, чтобы снова перевести текст в hex.
Как работает перевод hex в ASCII
Каждая пара hex-цифр — это один байт со значением от 00 до FF. В ASCII и UTF-8 байты 20–7E — печатаемые символы, поэтому 48 65 6C 6C 6F читается как H, e, l, l, o: «Hello». Символы вне ASCII, в том числе кириллица, занимают в UTF-8 несколько байтов: например, буква «П» — это D0 9F.
| Hex | Символ |
|---|---|
0A | Перевод строки (новая строка) |
0D | Возврат каретки |
20 | Пробел |
21 / 2C / 2E | ! / , / . |
30–39 | Цифры 0–9 |
41–5A | Заглавные буквы A–Z |
61–7A | Строчные буквы a–z |
C3 A9 | é в UTF-8 |
E2 82 AC | € в UTF-8 |
Как выбрать правильную кодировку
- UTF-8 — стандарт для веба и большинства файлов и API. Обычный текст ASCII — это корректный UTF-8.
- ASCII / Latin-1 (Windows-1252) — один байт на символ для западноевропейских текстов из старых систем. Каждому байту соответствует символ, поэтому декодирование всегда проходит без ошибок.
- UTF-16 LE/BE — два байта на символ; используется в API Windows, строках Java и JavaScript:
48 00 69 00— это «Hi» в UTF-16 LE.
Если вы видите символы �, значит, часть байтов недопустима в выбранной кодировке — или hex представляет собой не текст, а двоичные данные: изображение, хеш или сжатый архив.
Перевод hex в строку в коде
- Python:
bytes.fromhex('48656c6c6f').decode() - Node.js:
Buffer.from('48656c6c6f', 'hex').toString() - JavaScript в браузере:
new TextDecoder().decode(Uint8Array.from('48656c6c6f'.match(/../g), (h) => parseInt(h, 16))) - Linux и macOS:
echo 48656c6c6f | xxd -r -p
Часто задаваемые вопросы
Чем перевод hex в текст отличается от перевода hex в ASCII?
ASCII охватывает 128 символов (байты 00–7F): латинские буквы, цифры и знаки препинания. Перевод hex в текст включает также символы других языков, в том числе кириллицу, и эмодзи, которые UTF-8 хранит в 2–4 байтах. Для обычного английского текста результат одинаковый.
Почему появляется ошибка о неполном байте?
Каждый байт должен состоять ровно из двух hex-цифр. Нечётное количество цифр обычно означает, что пропущен ведущий ноль (пишите 0A, а не A) или при копировании потерялся символ. Сообщение об ошибке показывает, где именно проблема.
Можно ли декодировать hex с префиксами 0x или \x?
Да. Префиксы 0x, \x и %, а также пробелы, переносы строк, запятые, двоеточия и дефисы удаляются автоматически, поэтому массивы из C, байтовые строки Python и hex-дампы можно вставлять напрямую.
Загружаются ли мои данные куда-нибудь?
Нет. Hex декодируется с помощью JavaScript в вашем браузере и никогда не покидает ваше устройство.