onlinetools.dev

Экранирование строк

Экранируйте строки и снимайте экранирование для JSON, JavaScript, Java, XML, SQL и CSV

Работает локально
loading…
Об этом инструменте

Превратите многострочную строку с кавычками в то, что можно вставить внутрь JSON-значения, JavaScript-литерала, строки Java, текстового узла XML, SQL-литерала или CSV-ячейки — и разверните процесс, когда нашли экранированный текст в лог-файле и хотите его прочитать. Шесть диалектов, оба направления.

Каждый диалект следует своей настоящей спецификации, а не наименьшему общему знаменателю: JSON экранирует управляющие символы как \uXXXX, JavaScript дополнительно экранирует одинарные кавычки и бэктики, Java кодирует не-ASCII как UTF-16-последовательности \u, SQL удваивает одинарные кавычки, CSV оборачивает и удваивает по RFC 4180, а XML использует свои пять предопределённых сущностей. Обратная операция понимает формы \x, \u и \u{…} и сообщает о некорректных последовательностях с их позицией.

Экранированные строки — это сплошь и рядом строки подключения, токены и фрагменты запросов. Всё работает локально — вставляйте свободно.

Частые вопросы

Какой диалект нужен для JSON-конфига?
JSON. Он экранирует двойные кавычки, обратные слэши и управляющие символы ровно так, как требует RFC 8259, и оставляет юникод читаемым. Вывод вставляется в любое строковое значение JSON — без обрамляющих кавычек, которые инструмент оставляет вам.
В чём разница между диалектами JSON и JavaScript?
JavaScript дополнительно экранирует одинарные кавычки и бэктики, чтобы результат был безопасен в любом из трёх стилей кавычек JS. JSON нуждается только в обработке двойных кавычек. Снятие экранирования принимает оба, плюс формы \x и \u{…}, которых в JSON нет.
Делает ли SQL-экранирование пользовательский ввод безопасным для конкатенации?
Оно даёт корректный строковый SQL-литерал (кавычки удвоены), но «заэкранировать и склеить» — всё равно неправильный паттерн для недоверенного ввода: используйте параметризованные запросы. Этот инструмент для фикстур, миграций и отладки, а не для защиты от инъекций.
Почему снятие экранирования с моей строки падает?
Обратный слэш, за которым идёт что-то, не являющееся определённым экранированием (\q, оборванное \u12), некорректен, и ошибка называет индекс проблемного места. Если в тексте буквальные пути Windows, сначала заэкранируйте его — C:\temp скрывает в себе символ табуляции.
Похожие инструменты