Преобразуйте текст в двоичный, шестнадцатеричный, восьмеричный или десятичный код и обратно. С учётом UTF-8, настраиваемые разделители и дополнение нулями. Работает полностью в браузере.
Преобразуйте текст в двоичный, hex, восьмеричный или десятичный — и обратно. Обе панели доступны для редактирования, поэтому можно кодировать текст или вставить закодированную строку для декодирования. Кодирование основано на байтах UTF-8, поэтому акцентированные буквы, символы CJK и эмодзи сохраняются при круговом преобразовании.
Как текст становится байтами
Символы — это не байты
Символ — абстрактная идея; байт — восемь бит памяти. Превращение одного в другое требует кодировки. Этот инструмент использует UTF-8 — кодировку, на которой держится более 98% веба. В UTF-8 диапазон ASCII A-Z, a-z, 0-9 и обычная пунктуация занимают ровно один байт, поэтому A — это 01000001. Акцентированная латиница и греческий занимают по два байта, большинство CJK-символов — по три, а эмодзи — по четыре.
Почему это важно для круговых преобразований
Старые конвертеры текста в двоичный вызывают charCodeAt и обрезают до 8 бит. Это работает для простого ASCII и молча портит всё остальное, поэтому é возвращается как другой символ или как символ замены. Поскольку этот конвертер кодирует настоящие байты UTF-8, строка с китайскими иероглифами и эмодзи декодируется точно в то, с чего вы начали.
Выбор системы счисления
Двоичная показывает чистый битовый шаблон — то, что нужно при объяснении работы кодировки или отладке побитового протокола.
Шестнадцатеричная — практичный выбор по умолчанию. Две hex-цифры на байт делают границы байтов очевидными, поэтому её используют любые hex-редакторы и сетевые дампы.
Восьмеричная группирует по три бита и встречается в основном в правах Unix и некоторых C-эскейпах.
Десятичная проще всего читается вслух, но полностью скрывает битовую структуру.
Разделители и дополнение
Дополнение нулями делает все байты одинаковой ширины — восемь символов в двоичной, два в hex, — поэтому вывод можно надёжно разбить даже без разделителя между значениями. Если отключить дополнение, оставьте разделитель, иначе 1 и 10 сольются и результат нельзя будет однозначно декодировать. При декодировании принимается любая смесь пробелов, запятых и переводов строк.
Часто задаваемые вопросы
Почему мой китайский символ — три группы по восемь бит?
UTF-8 кодирует большинство CJK-символов тремя байтами, и каждый байт становится одной восьмибитной группой. Это правильное поведение, а не ошибка.
Могу ли я декодировать двоичный код без разделителей?
Да, если он был дополнен нулями. Декодер возвращается к нарезке фиксированной ширины — восемь символов на байт в двоичной, два в hex, — когда не находит разделителя.
Используется ли здесь ASCII или UTF-8?
UTF-8. Для простого диапазона ASCII они идентичны, поэтому английский текст выглядит одинаково в любом случае, но UTF-8 также корректно обрабатывает все остальные символы.
Почему я получаю ошибку при декодировании ввода?
Каждая группа должна разбираться в значение от 0 до 255 в выбранной системе счисления. Значение 256, лишняя буква в двоичном режиме или неверно выбранная система счисления — всё это вызовет ошибку.
Это то же самое, что Base64?
Нет. Base64 упаковывает три байта в четыре печатных символа, чтобы данные были компактными. Этот инструмент выводит каждый байт отдельно в выбранной числовой системе счисления — гораздо многословнее, но читаемо человеком.
Мой текст куда-либо отправляется?
Нет. Кодирование и декодирование используют встроенные в браузер TextEncoder и TextDecoder, полностью на вашей машине.