Почему шестнадцатеричный вид встречается повсюду
Шестнадцатеричная система (основание 16) — обычная человекочитаемая форма сырых байтов. Каждый байт — две hex-цифры (00–ff), поэтому короткая строка остаётся компактнее двоичной и однозначна по границам байтов. Сетевые трассы, дампы памяти, цветовые коды, криптографические дайджесты и сигнатуры файлов почти все говорят на hex.
Кодировать текст как hex значит: взять байты текста в кодировке символов (обычно UTF-8) и напечатать каждый байт как двухзначную hex-пару. Декодирование обращает это отображение. Hex — не шифрование; это прозрачный алфавит для байтов. Любой декодер мгновенно восстанавливает исходную последовательность байтов.
Закодируйте образец через из текста в hex, затем восстановите через из hex в текст.
Подинструменты этого семейства
- Из текста в hex — кодирует каждый UTF-8-байт текста как разделённые пробелами строчные hex-пары, полезно для отладки и wire-дампов.
- Из hex в текст — принимает разделённый или непрерывный hex и восстанавливает читаемый текст, когда байты образуют допустимый текст по правилам декодера.
Используйте их вместе, чтобы подтвердить, что задокументированный дамп совпадает со строкой, или превратить вставленный фрагмент захвата обратно в символы, если нагрузка была открытым текстом.
Пробелы, регистр и префиксы
Реализации различаются косметикой:
- Регистр.
4aи4A— один байт. Строчные обычны в дампах; прописные встречаются во многих RFC. - Пробелы. Пробел каждые две цифры улучшает читаемость (
48 65 6c 6c 6f). Непрерывный hex (48656c6c6f) столь же валиден при чётной длине. - Префиксы. Языки иногда пишут
0x48или\x48. Снимайте префиксы перед чистым hex-декодером, если инструмент не документирует поддержку.
Hex-строки нечётной длины недействительны для декодирования целых байтов: половины байта без явного nibble-формата нет.
Байты UTF-8 против кодовых точек Unicode
Важное различие:
- Hex-дампы текста обычно — последовательности байтов UTF-8. Знак евро
€— три байтаe2 82 ac, не одно значение кодовой единицы. - Кодовые точки Unicode часто пишут как
U+20AC. Это не та же строка, что UTF-8 hex-дамп.
Пара текст↔hex Tool Plaza фокусируется на байтовой кодировке текста (UTF-8)—как в анализаторах протоколов и выводе в стиле xxd. Для списков кодовых точек используйте Unicode-ориентированный процесс.
Повседневные применения
Отладка сериализаторов. Когда JSON или CSV выглядит неверно, hex показывает невидимые символы: c2 a0 (неразрывный пробел UTF-8), ef bb bf (BOM UTF-8) или случайные 00 null.
Сравнение дайджестов и ключей. Дайджесты SHA-256 и многие API-секреты публикуются как hex. Понимание, как текст становится hex, помогает заметить рассинхрон кодировок (UTF-8 vs UTF-16, обрезанные переводы строк).
Магические числа файлов. PNG начинается с 89 50 4e 47; JPEG — с ff d8 ff. Hex-виды делают эти сигнатуры очевидными, даже если расширение врёт.
Обучение кодировкам. Ученики могут преобразовать Hi → 48 69 и связать таблицы ASCII с байтами на проводе.
Hex против Base64 против двоичного
| Представление | Плотность | Типичное применение |
|---|---|---|
| Двоичные цифры | Наименьшая | Обучение битовым флагам |
| Hex | Средняя | Дампы, дайджесты, цвета |
| Base64 | Выше | Встраивание байтов в JSON/XML |
Те же байты, разные алфавиты. Предпочитайте hex, когда людям нужно глазами смотреть значения байтов; Base64 — при упаковке в текстовые протоколы (см. хаб base64). Двоичный — когда важны отдельные биты (binary). Десятичные коды ASCII (ascii) — третий учебный вид для диапазона 0–127.
Частые режимы отказа
- Декодировать hex, который на самом деле представляет сжатые или зашифрованные байты, и ждать читаемой прозы.
- Смешивать однобайтовые допущения Latin-1 с многобайтовым текстом UTF-8.
- Копировать hex из UI с разделителями
:(MAC-адреса) или-(некоторые GUID) без нормализации. - Считать hex способом спрятать пароли в конфигах—для любого декодера это всё ещё открытый текст.
- Усекать дайджесты «ради экономии места» в контекстах безопасности.
Ограничения и браузерная среда
Эти конвертеры помогают инспектировать и преподавать байтовые кодировки. Они не проверяют семантическую структуру документа и не обеспечивают конфиденциальность. Для чувствительного материала держите обработку локально.
Кратко
Шестнадцатеричный вид — стандартная линза для байтов. Этот хаб связывает текст→hex и hex→текст, чтобы вы могли делать дампы и восстанавливать текст, когда байты текстовые. Учитывайте многобайтовые символы UTF-8, держите длину hex чётной, нормализуйте разделители и выбирайте hex, Base64 или двоичный в зависимости от того, нужны ли ясность, плотность или видимость битов.