Текст
String Escape
Экранировать текст в строковый литерал (кавычки, backslash, управляющие символы) для вставки в код, или разэкранировать обратно.
Чтобы вставить текст с кавычками, переносами строк или backslash внутрь строкового литерала в коде, эти символы нужно экранировать — иначе они преждевременно завершат строку или будут неправильно истолкованы. Инструмент экранирует и снимает экранирование текста под конкретный синтаксис.
Как пользоваться
- Экранирование: вставьте текст и выберите целевой контекст (JS-строка, JSON, shell и т.д.) — спецсимволы заменяются на соответствующие escape-последовательности.
- Снятие экранирования: вставьте уже экранированную строку, чтобы получить исходный текст обратно.
- Разные контексты экранируют один и тот же символ по-разному — убедитесь, что выбрали правильный режим для места вставки.
Типичные сценарии
- Вставка многострочного текста или текста с кавычками в переменную кода без ручной расстановки backslash.
- Подготовка строки для shell-команды, где кавычки и спецсимволы могут сломать выполнение.
- Снятие экранирования строки, скопированной из логов или JSON-ответа, для чтения исходного текста.
Что стоит помнить
Один и тот же символ (например, двойная кавычка) экранируется по-разному в зависимости от контекста — JS-строка, JSON и shell имеют собственный синтаксис и собственный набор спецсимволов.
Двойное экранирование (экранирование уже экранированного текста) — распространённая ошибка при вставке данных через несколько слоёв (например, JSON внутри shell-команды).
Статья об этом инструменте: String Escape: почему один и тот же текст нужно экранировать по-разному
Часто задаваемые вопросы
Что именно делает экранирование?
Оно превращает кавычки, обратные слеши и управляющие символы (вроде разрывов строк или табуляций) в действительные экранированные последовательности в пределах строкового литерала, чтобы текст можно было вставить как есть в исходный код.
Для чего нужны стиль кавычек и опция unicode?
Стиль кавычек (двойные, одинарные или обратные) определяет, какой символ экранируется, чтобы не сломать строку, а опция \uXXXX превращает не-ASCII символы в экранированные unicode-последовательности вместо того, чтобы оставить их как есть.
Отправляется ли вставленный текст на сервер?
Нет, экранирование и его отмена полностью выполняются в браузере через JavaScript, никакие данные не отправляются онлайн.
Что делать, если текст проходит через несколько контекстов подряд?
Экранировать нужно в правильном порядке: сначала для внутреннего контекста (например, JSON), затем для внешнего (например, shell-команда, в которую вставляется этот JSON). Перепутанный порядок или пропущенный уровень — типичная причина, почему «правильно экранированная» строка всё равно ломается на практике.
Почему одна и та же кавычка экранируется по-разному в разных контекстах?
Каждый контекст (JS-строка, JSON, shell, regex) имеет собственный синтаксис со своим набором спецсимволов и собственным способом их экранирования — поэтому правильное экранирование зависит от того, куда именно вставляется текст, а не от самого текста.