Текст и кодирование

Инструменты кодирования и экранирования

Один и тот же текст нужно экранировать по-разному в зависимости от того, куда он попадёт: у параметра URL-запроса, атрибута HTML, строкового литерала JSON и data: URL — свои правила, и ошибка здесь создаёт баги, которые трудно заметить глазами. Здесь собраны кодирование Base64, Base32, Base58 и Base85, кодирование URL и HTML-сущностей, экранирование строк и несколько менее распространённых форматов вроде Punycode и ROT13.

Base64 декодер поддерживает строгий режим UTF-8 и альтернативные алфавиты, а Преобразование кодировок Base даёт выбрать конкретный вариант алфавита для Base32 или Base58, поскольку разные системы используют разные наборы символов. URL декодер различает компонент URL, полный URI и значение поля формы как отдельные случаи, ведь у каждого свой набор экранируемых символов. Экранирование строк отдельно обрабатывает контексты JSON, JavaScript и Unicode-escape, а не одно общее правило.

9 инструментов

Вопросы об инструментах категории «Encoding & Escaping»

Почему кодирование URL даёт разный результат в зависимости от того, где я его использую?

Параметр запроса URL, сегмент пути и полный URI резервируют разные наборы символов, поэтому правильное кодирование слэша или плюса зависит от того, что именно вы строите. URL декодер обрабатывает компоненты URL, полные URI и значения полей формы как отдельные режимы, чтобы вы кодировали по правильному правилу, а не по приблизительно похожему.

В чём разница между Base32, Base58 и Base64?

Они по-разному жертвуют длиной результата ради читаемости и безопасности: Base64 самый компактный, но чувствителен к регистру и содержит символы, небезопасные в URL или именах файлов; Base32 не зависит от регистра, что удобно для кодов, вводимых вручную; Base58, используемый в адресах Bitcoin, убирает похожие символы вроде 0, O, I и l. Преобразование кодировок Base охватывает все три варианта плюс Base85.

Как экранировать строку для безопасного использования внутри значения JSON?

Экранирование строк превращает управляющие символы, кавычки и обратные слэши в безопасные для JSON escape-последовательности и умеет делать то же самое для строковых литералов JavaScript или отдельно для Unicode-escape, поскольку точный набор символов для экранирования немного отличается в каждом контексте.