Кодировщик и декодировщик текста
Выберите Base64, URL-кодирование, HTML-сущности или escape-последовательности Unicode, введите или вставьте текст и смотрите, как он кодируется или декодируется по мере ввода. Кнопка смены местами превращает результат во вход, поэтому можно проверить обратное преобразование. Бесплатно, без регистрации; текст преобразуется в вашем браузере и никуда не загружается.
Как пользоваться кодировщиком и декодировщиком текста
- 1. Выберите формат. Base64, URL-кодирование, HTML-сущности или escape-последовательности Unicode; каждая карточка объясняет, для чего этот формат.
- 2. Выберите «Кодировать» или «Декодировать». Кодировать превращает читаемый текст в формат; декодировать возвращает его обратно.
- 3. Введите или вставьте текст. Результат появляется по мере ввода. Ничего никуда не отправляется.
- 4. Скопируйте или поменяйте местами. Копировать в буфер обмена копирует результат. Поменять местами ввод/вывод переносит результат в поле ввода и меняет направление — это самый быстрый способ проверить обратное преобразование.
Какое кодирование для какой задачи
| Формат | Для чего используется | Стандарт | Вывод |
|---|---|---|---|
| Base64 | Передача байтов через каналы только для текста: вложения электронной почты, data-URI, токены, JSON | RFC 4648 | Буквы, цифры, +, / и выравнивание =; примерно на треть длиннее |
| URL-кодирование | Безопасная вставка текста в строку запроса или сегмент пути | RFC 3986 | Каждый небезопасный байт как % и два шестнадцатеричных знака |
| HTML-сущности | Показ <, & и не-ASCII символов на веб-странице | Символьные ссылки HTML | Десятичные числовые ссылки вида é |
| Escape-последовательности Unicode | Запись не-ASCII символов в исходном коде JavaScript, JSON или Java | JSON (RFC 8259), ECMAScript | \u и четыре шестнадцатеричных знака на символ |
Кодирование — не шифрование. Все четыре способа публичны, обратимы и не требуют ключа, поэтому любой может их декодировать. Base64 часто принимают за защиту, но он лишь меняет способ записи байтов.
Пример
Вот текст Café & crème ☕, пропущенный через каждый формат, как его выводит инструмент:
| Формат | Закодировано |
|---|---|
| Base64 | Q2Fmw6kgJiBjcsOobWUg4piV |
| URL-кодирование | Caf%C3%A9%20%26%20cr%C3%A8me%20%E2%98%95 |
| HTML-сущности | Café & crème ☕ |
| Escape-последовательности Unicode | Caf\u00e9 & cr\u00e8me \u2615 |
Обратите внимание, что оставляет каждый формат. HTML-кодирование записывает амперсанд как &, но сохраняет обычные буквы и пробелы. Unicode-экранирование меняет только символы с кодом выше 127, поэтому амперсанд остаётся. URL-кодирование переписывает всю строку как байты UTF-8: é — это два байта C3 A9, отсюда %C3%A9, а пробел — %20. Base64 переписывает всё, потому что работает с байтами UTF-8 всей строки группами по три.
Что сбивает людей с толку
- URL-кодирование предназначено для частей адреса, а не для целых URL. Инструмент экранирует всё, кроме букв, цифр и
- _ . ! ~ * ' ( ), поэтомуa b&c=d/e?fстановитсяa%20b%26c%3Dd%2Fe%3Ff. Слеши, двоеточия и знаки вопроса тоже экранируются — это верно для значения, но сломает полный адрес. - Пробел становится %20, а знаки плюса не декодируются. В данных форм
+означает пробел, но здесь декодирование превращаетa+b%20cвa+b c. - Base64 кодирует стандартным алфавитом. Декодирование также принимает URL-безопасный Base64, где вместо
+и/стоят-и_, а выравнивание=может отсутствовать. Кодирование всегда пишет+,/и выравнивание, так что поменяйте их, если нужен URL-безопасный вариант. - Эмодзи и другие символы выше U+FFFF в HTML-кодировании обрабатываются как один символ и получают одну ссылку (😀 как
😀). Unicode-экранирование записывает их двумя суррогатными escape-последовательностями (😀 как\ud83d\ude00), которые принимают JavaScript и JSON. - Ошибки декодирования выводятся в поле результата в квадратных скобках, например
[Error: invalid Base64 input], а не отдельным сообщением.
Какой инструмент вам нужен?
Эта страница конвертирует текст для веба. Для сырых байтов текста используйте Конвертер Hex (шестнадцатеричные байты) или Переводчик двоичного кода (группы по 8 бит). Для кодов символов Конвертер ASCII даёт десятичные коды. Перевод числа между системами счисления делает Системы счисления. Base32, Base58 и Ascii85 пока относятся к запланированному конвертеру Base32, Base58 и Ascii85.
Часто задаваемые вопросы
- Какие форматы кодирования поддерживает этот инструмент?
- Четыре: Base64 (RFC 4648), процентное URL-кодирование, десятичные числовые HTML-сущности и Unicode-экранирование
\u. Каждый можно закодировать или декодировать. - Для чего используется Base64?
- Он представляет двоичные данные 64 печатными символами, чтобы их можно было передавать через системы, рассчитанные на текст: вложения электронной почты,
data:-URI, которые встраивают изображения, заголовки HTTP basic-auth и сегменты JSON Web Token. Данные становятся примерно на 33% больше, и никакой секретности он не даёт. - Когда следует использовать URL-кодирование?
- Всякий раз, когда введённый пользователем текст попадает в часть URL — значение запроса, сегмент пути, фрагмент — потому что пробелы, амперсанды, знаки равенства, не-ASCII буквы и похожие символы иначе будут поняты неверно. Кодируйте части, а не весь адрес.
- Это то же самое, что шифрование?
- Нет. Кодирование меняет способ записи данных, чтобы их можно было сохранить или отправить; любой может его обратить, и ключа нет. Шифрование требует секретного ключа. Никогда не используйте Base64 или процентное кодирование, чтобы скрыть пароль или токен.
- Может ли он декодировать URL-безопасный Base64?
- Да. Вставьте строку URL-безопасного варианта с
-и_, с выравниванием=или без него — она декодируется. Кодирование пишет стандартный алфавит, поэтому замените+на-, а/на_самостоятельно, если нужен URL-безопасный вариант. - Какие HTML-сущности понимает декодировщик?
- Десятичные ссылки (
é) и шестнадцатеричные (é) для символов до U+FFFF и короткий список именованных:&,<,>,",', ,©,®,™,€,£,¥,¢,—,–,«,»и…. Другие именованные сущности, напримерé, остаются как введены. - Загружается ли мой текст куда-либо?
- Нет. Все четыре преобразования выполняются в вашем браузере по мере ввода, и ничего не отправляется в CitationEasy.