Что такое Текст в шестнадцатеричный код?

Text to Hex преобразует текст в шестнадцатеричные байты. Каждый символ соответствует своему HEX-значению — полезно для отладки, сетевого анализа и бинарных протоколов.

По умолчанию используется UTF-8, поэтому латиница с диакритикой, кириллица, CJK, арабский и эмодзи сериализуются в правильную последовательность байтов — а кодировку можно переключить на UTF-16, ASCII или Latin-1, чтобы совпасть со старой системой или протоколом. Форматируйте вывод пробелом, двоеточием, запятой или без разделителя, добавляйте `0x` перед каждым байтом для массивов в стиле C и меняйте регистр. Вводите вручную, вставляйте из буфера обмена или загружайте текстовый файл. Обратный режим разбирает hex-строки обратно в текст и допускает лишние пробелы или префиксы `0x`.

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

  1. Введите или вставьте текст в поле ввода, нажмите кнопку «Вставить», чтобы взять его из буфера обмена, или загрузите текстовый файл.
  2. Выберите формат hex: кодировку (UTF-8, UTF-16, ASCII, Latin-1), разделитель (пробел, запятая, двоеточие, нет), префикс (0x), верхний или нижний регистр и при необходимости группировку байтов для вида hex-дампа.
  3. Скопируйте HEX-вывод для кода или документации. Также доступно обратное преобразование из HEX в текст.

Когда использовать

  • Посмотреть реальные байты строки перед отправкой через бинарный протокол.
  • Вставить не-ASCII текст в исходник C, Rust или Go как массив байт.
  • Отлаживать проблемы кодировки, сравнивая фактические байты с ожидаемыми.

Результат

Введите 'Hello World' и получите '48 65 6C 6C 6F 20 57 6F 72 6C 64' через пробелы или '0x48,0x65,0x6C...' с префиксом 0x для C-массивов.

Частые вопросы

Какую кодировку символов использует конвертер?
По умолчанию UTF-8, а UTF-16, ASCII и Latin-1 выбираются в строке кодировки. В UTF-8 обычные символы ASCII занимают по одному байту (A → 41), а эмодзи и CJK разворачиваются в несколько байт (😀 → F0 9F 98 80) — именно это шлют файлы, тела HTTP и большинство API. Выбирайте Latin-1 для однобайтового старого текста или ASCII, когда нужно помечать всё, что выходит за 7 бит.
Почему один эмодзи даёт четыре пары hex, а не одну?
Эмодзи и многие нелатинские символы имеют кодовые точки выше 0x7F, поэтому UTF-8 представляет их 2, 3 или 4 байтами. Один 🚀 превращается в четыре пары (F0 9F 9A 80), каждая пара — это один байт многобайтовой последовательности.
Можно ли вставлять hex с разными разделителями?
Да. Декодер срезает префиксы `0x`, игнорирует пробелы, запятые, двоеточия и дефисы и склеивает всё, что похоже на hex-цифры. Поэтому `0x48,0x65 6C-6C:6F` и `48656C6C6F` оба превращаются обратно в "Hello".
В чём разница между записью с префиксом `0x` и без него?
Это вопрос нотации. `0x48` — стандартный вид в исходниках C, C++, Rust и Go, а `48` чаще встречается в hex-дампах, перехвате пакетов и большинстве сетевых утилит. С префиксом удобно вставлять в код, без него — в логи.
Подойдёт ли вывод для криптографии, например для хеширования?
Он даёт сырые UTF-8 байты, а это и есть правильный первый шаг для большинства hash- и HMAC-алгоритмов: они работают с байтами, а не с символами. Передайте эти байты в свой инструмент хеширования. Сама hex-строка ещё не хеш.

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