Экранирование и раскодирование строк — Escape / Unescape
Экранируем текст для HTML, XML, JSON, JavaScript, URL, Base64, ячейки CSV, строки SQL и регулярного выражения — и раскодируем обратно. Замечаем двойное экранирование, сверяем результат с исходником. Текст не покидает браузер.
Результат
Подвохи
Что делает инструмент
Экранирование превращает служебные знаки в безопасную запись: в HTML
знак «меньше» становится <, в JSON перенос строки —
\n, в адресе кириллица — %D0%BA. Раскодирование
возвращает всё обратно. Режим выбирается по тому, куда текст пойдёт:
в разметку, в код, в адрес, в таблицу.
После каждого преобразования результат раскодируется обратно и сверяется с исходником до знака. Если не сошлось, об этом сказано прямо.
Двойное экранирование
Самая частая беда: текст уже содержит & или
\n, его экранируют ещё раз, и на странице вылезает
&amp;, а в строке — \\n.
Перед экранированием мы смотрим, нет ли в тексте уже готовых последовательностей этого режима, и предупреждаем. После раскодирования проверяем, не осталось ли их: если остались, текст кодировали дважды, и нужен ещё один проход.
URL: три разных случая
Значение параметра кодируется целиком: ?, &,
= и / внутри него тоже становятся процентами,
иначе они разорвут адрес. Адрес целиком кодируется иначе: эти знаки
остаются, превращается только то, что в адресе стоять не может.
В теле формы пробел по традиции пишется плюсом. Все три режима здесь, и при раскодировании плюс по желанию читается как пробел.
Base64 по-честному
Текст сначала переводится в байты UTF-8, потом в Base64, поэтому
кириллица и значки проходят без потерь. Вариант URL-safe заменяет
+ и / на - и _
и убирает = в конце: такую строку можно ставить в адрес
и в имя файла.
Раскодированное не всегда текст. Если байты не складываются в UTF-8,
мы не показываем кракозябры, а говорим, что это: картинка PNG, документ
PDF, архив ZIP — и сколько в нём байт. Приставка data:
снимается сама.
Режимы
- HTML: пять служебных знаков, а раскодирование понимает все
именованные сущности, включая
и—; - XML: только пять сущностей,
здесь нет; - JSON и JavaScript: содержимое строкового литерала, кавычки по желанию,
не-ASCII по желанию как
\u0430; - ячейка CSV: кавычки вокруг, если внутри разделитель, кавычка или перенос строки, кавычка внутри удваивается;
- строка SQL: апостроф удваивается. Это не замена параметрам запроса: от подстановки значений в текст лучше уходить вовсе;
- регулярное выражение: точка, скобки, звёздочка и прочие служебные знаки получают обратную косую черту.
Текст остаётся в браузере
Экранируют и токены, и пароли, и куски чужих писем. На сервер ничего не уходит: преобразование и сверка считаются на вашей стороне.
Другие инструменты
Просмотр исходного кода страницы
Исходный HTML страницы глазами робота Яндекса или Google
Визуальный HTML-редактор
Пишете как в текстовом редакторе — получаете готовый HTML
Код цвета HTML
Код цвета в HEX, RGB, HSL и HSB, с проверкой контраста
Эффект стекла в CSS
Стекло с проверкой читаемости надписи и запасным вариантом
Конвертер CSS в SCSS и обратно
CSS в SCSS со вложенностью и обратно, со сверкой результата
Конструктор сеток CSS Grid
Сетка под три экрана с готовым HTML и проверкой порядка блоков