Hex кодирование / декодирование

Перевод текста и файлов в шестнадцатеричный вид и обратно. Кодировка и регистр; декодирует hex с пробелами, двоеточиями, дефисами и 0x. В браузере.

Введённые данные и файлы остаются в браузере

Введите текст для кодирования или вставьте hex-строку для декодирования — или перетащите файл ниже.

Перетащите файл сюда

Если выбран файл, текстовое поле игнорируется.

Опции декодирования

Здесь появится результат кодирования или декодирования.

На этой странице

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

Подробное описание функциональности

Каждый байт превращается в две hex-цифры, поэтому результат точно показывает, из каких байтов состоит строка: удобно проверять последовательности UTF-8, BOM, переводы строк и невидимые символы. Текст переводится в байты в выбранной кодировке (UTF-8, UTF-16LE, UTF-16BE, ASCII или ISO-8859-1), а Регистр hex переключает цифры между нижний и ВЕРХНИЙ.

Декодер принимает hex в том виде, в каком его обычно копируют из отладчиков, дампов трафика и сертификатов: сплошной (48656c6c6f), разбитый пробелами или переносами, с двоеточиями или дефисами (48:65:6c, 48-65-6c) и с префиксом 0x у каждого байта (0x48 0x65). Каждую из этих поблажек можно отключить в Опции декодирования для строгой проверки. Нечётное число цифр или не-hex символ дают ошибку, а ошибочный символ выделяется в поле ввода.

Файлы можно выбрать или перетащить на страницу; они читаются в Web Worker с индикатором прогресса и кнопкой Отмена. Если декодированные байты не являются текстом в выбранной кодировке (например, это бинарный дамп), инструмент сообщит об этом, а Скачать сохранит сырые байты.

Практические примеры

Текст в hex: Hi! превращается в 486921; в UTF-8 Привет становится d09fd180d0b8d0b2d0b5d182 (12 байт, по два на каждую кириллическую букву).

Кодировка и порядок байтов: буква A — это 4100 в UTF-16LE и 0041 в UTF-16BE.

Отформатированный hex: 48:65:6c:6c:6f, 48-65-6c-6c-6f и 0x48 0x65 0x6C 0x6C 0x6F декодируются в Hello.

Проверка: 48656c6c6 (девять цифр) отклоняется как обрезанный, а для 4865zz сообщается о недопустимом символе в позиции 5.

Как использовать этот инструмент

  1. Введите текст или выберите файл

    Вставьте в поле Текст обычный текст для кодирования или hex-строку для декодирования. Можно также перетащить файл на страницу или нажать Выбрать файл.

  2. Задайте кодировку и регистр

    Выберите Кодировка текста, в которой текст переводится в байты, и Регистр hex для вывода. В Опции декодирования оставьте или снимите Игнорировать пробелы/переводы строк, Разрешить разделители (: и -) и Разрешить префикс 0x.

  3. Закодируйте или декодируйте

    Нажмите Кодировать, чтобы получить hex, или Декодировать, чтобы превратить hex в текст или байты. При ошибке сообщение укажет позицию неверного символа.

  4. Скопируйте или скачайте

    Копировать помещает результат в буфер обмена, Скачать сохраняет его в файл; бинарный результат можно только скачать.

Советы и лучшие практики

  • Hex удваивает размер: 1 байт — 2 символа. Для компактной передачи используйте Base64, а hex — чтобы рассматривать и сравнивать байты.
  • Чтобы найти скрытый BOM или неразрывный пробел, закодируйте текст в UTF-8: efbbbf — это BOM, а c2a0 — неразрывный пробел.
  • Хеши (SHA-256, MD5) тоже записываются в hex: при декодировании получаются сырые байты, а не текст, поэтому используйте Скачать.
  • Снимите Разрешить разделители (: и -) или Разрешить префикс 0x, если нужно убедиться, что ввод — чистый сплошной hex: тогда 0x48 выдаст ошибку в позиции 2.
  • Регистр цифр при декодировании не важен: D0 9f и d0 9F дают одну и ту же букву П.