Кодировщик / декодер
Вставьте странную строку, и инструмент угадает, что это, и расшифрует. Или напишите обычный текст и посмотрите его во всех кодировках сразу.
Работает в вашем браузере. Всё, что вы сюда вставляете или бросаете, никуда не загружается.
- Ввод
- Текст
Base64 — это костюм, а не замок. И ₪ — это не &.
Расшифровано из Base64.
Разобрать по символам
| Символ | Код | Что это | UTF-8 | UTF-16 |
|---|
Как пользоваться
- Вставьте странную строку в поле. В режиме Авто инструмент сам угадает формат, расшифрует строку и продолжит, если результат всё ещё закодирован.
- Проверьте метку над результатом. Если догадка неверная, выберите вариант в строке Или прочитать как или переключитесь на Декодировать и укажите формат сами.
- Чтобы закодировать текст, включите Кодировать и оставьте формат Все. Текст появится сразу в Base64, URL, hex, сущностях и остальном.
- Скопируйте результат или нажмите В поле ввода, чтобы развернуть его обратно и проверить, что всё сходится.
- Откройте Разобрать по символам, чтобы увидеть коды и байты. Там и ловятся невидимые символы и буквы-двойники.
Что он делает
Декодер Base64, URL и HTML-сущностей и конвертер hex и Unicode в одном поле. Всё идёт через UTF-8, поэтому иврит, кириллица и эмодзи доходят целыми: ₪ — это три байта, e2 82 aa, а 😀 — четыре.
Автоопределение оценивает каждый формат по виду строки и по тому, получается ли читаемый текст. SGVsbG8%3D — это Base64 внутри URL-кодирования, поэтому строка декодируется дважды, и видны оба шага. Короткие строки неоднозначны: cafe — и слово, и валидный hex, так что здесь инструмент не гадает. Выберите формат сами.
Если байты не складываются в UTF-8, вы получите hex-дамп и пояснение вместо экрана �. Старые системы до сих пор шлют Windows-1251 и Windows-1255: переключите вид байтов, чтобы их прочитать. С одной такой я столкнулся в банковской интеграции из 1975 года.
JWT расшифровывается, но не проверяется: видны header и payload, а подпись просто показана. HTML-сущности покрывают набор HTML 4 и частые имена из HTML5. В полном списке больше 2000 имён, и большинство из них в жизни не встречается.
Вопросы
Base64 — это шифрование?
Нет. Base64 — это кодировка: расшифровать её может кто угодно, ключ не нужен. Она нужна, чтобы передавать байты там, где принимают только текст: в JSON, письмах, URL. Livewire, например, отправляет состояние компонента в Base64, поэтому его нужно проверять на сервере, как любой пользовательский ввод.
Почему Base64 расшифровывается в кракозябры?
Чаще всего потому, что внутри не текст. Картинки, gzip, PDF и зашифрованные данные — это просто байты, и инструмент скажет, если узнает тип файла. Другие причины: строку обрезали или добавили лишние символы при копировании, это Base64URL (- и _), который другой инструмент прочитал как обычный Base64, или текст внутри был в старой кодировке вроде Windows-1251.
Чем encodeURI отличается от encodeURIComponent?
encodeURI кодирует URL целиком и не трогает : / ? # & =, а encodeURIComponent кодирует одну часть, например значение параметра, и экранирует их тоже. Для всего, что вставляется внутрь URL, берите вторую. Формат URL здесь — это encodeURIComponent; URL form ещё и превращает пробелы в +, как это делают HTML-формы.
Почему на сайте вместо & показывается ₪?
Это проблема шрифта, а не кодировки. Если байты правильные (& — это 26, ₪ — e2 82 aa), а на экране не тот символ, его рисует веб-шрифт. Проверьте через «Разобрать по символам» и прочитайте, как я чинил ровно это.
Что такое Base64URL?
Это Base64, в котором заменены два символа, чтобы результат можно было вставлять в URL и имена файлов: - вместо + и _ вместо /, и обычно без = в конце. Его используют JWT, многие API-токены и WebAuthn. Строгий декодер Base64 на нём спотыкается; этот читает оба варианта, а значок над результатом показывает, какой из них он увидел.