DevToolPal
UK

Екранування рядків

Екранує рядки та знімає екранування для JSON, JavaScript, Java/C#, Python, SQL, CSV, XML, регулярних виразів і команд оболонки.

Працює локально, нічого не завантажується на сервер

Параметри

Режим

Вхідні дані

0 симв. · 0 B

Результат

0 симв. · 0 B

Що робить інструмент

Інструмент екранування рядків перетворює текст на форму, яку можна помістити всередину рядкового літерала, і повертає екрановані рядки до звичайного тексту. Підтримуються дев’ять варіантів: JSON, JavaScript, Java і C#, Python, рядкові літерали SQL, поля CSV, текст і атрибути XML, регулярні вирази та команди POSIX-оболонки. Кожен дотримується правил своєї мови, тож результат можна вставити просто в код без синтаксичних помилок.

Типові завдання: записати багаторядкове повідомлення чи шлях Windows у JSON-конфіг, вбудувати фрагмент HTML у рядок JavaScript, узяти в лапки ім’я файлу з пробілами для shell-скрипта або перетворити пошукову фразу на кшталт price (USD) на регулярний вираз, що знаходить її буквально.

Як користуватися

  1. Оберіть Екранувати або Зняти екранування.
  2. Оберіть мову чи формат.
  3. Вставте текст у поле введення або натисніть Приклад. Результат оновлюється під час введення.
  4. Скопіюйте результат або натисніть Використати як введення, щоб виконати зворотне перетворення й переконатися, що виходить початковий текст.

Для JSON, JavaScript, Java/C# і Python можна також екранувати всі не-ASCII символи й отримати чистий ASCII-рядок, який переживе будь-яке кодування файлу.

Приклад

Той самий рядок, екранований для різних цілей:

Input:       He said "hi" in C:\Temp
JSON:        He said \"hi\" in C:\\Temp
SQL:         He said "hi" in C:\Temp            (only ' is doubled)
Regex:       He said "hi" in C:\\Temp
Shell:       'He said "hi" in C:\Temp'

Правила для кожного формату

  • JSON: екранує лапки, зворотні скісні риски й керівні символи — точно як JSON.stringify.
  • JavaScript: додатково екранує одинарні лапки, зворотні апострофи, вертикальну табуляцію та роздільники рядків U+2028 і U+2029.
  • Java / C#: екранування зворотною скісною рискою та \uXXXX; під час зняття екранування також приймаються вісімкові послідовності Java та \x і \U з C#.
  • Python: екранування зворотною скісною рискою з \x, \u і \U; невідомі послідовності залишаються як є.
  • SQL: подвоює одинарні лапки для стандартних рядкових літералів SQL.
  • CSV: бере значення в подвійні лапки й подвоює внутрішні, якщо в ньому є кома, лапка, переведення рядка або пробіли по краях.
  • XML: замінює п’ять наперед визначених сутностей; під час зняття екранування також декодує числові посилання на символи.
  • Регулярний вираз: ставить зворотну скісну риску перед кожним символом з особливим значенням, щоб шаблон збігався з текстом буквально.
  • Оболонка: бере значення в одинарні лапки, всередині яких POSIX-оболонки нічого не розкривають, а внутрішні лапки записує як '\''.

Часті запитання

› Що означає екранувати рядок?

Деякі символи всередині рядкового літерала мають особливе значення, наприклад лапка, що його завершує, або переведення рядка. Екранування замінює їх безпечною послідовністю, зазвичай зворотною скісною рискою з літерою, щоб рядок можна було вставити в код, запит чи файл, нічого не зламавши.

› Чи треба вставляти лапки навколо рядка?

Ні, вставляйте лише вміст. Екранований результат — це те, що стоїть між лапками в коді. Для CSV та оболонки, де в лапки береться все значення, інструмент сам додає зовнішні лапки, коли вони потрібні.

› Чи достатньо екранування SQL для захисту від SQL-ін'єкцій?

Подвоєння одинарних лапок дає коректний рядковий літерал, що зручно, коли ви пишете запит вручну чи готуєте скрипт міграції. У коді застосунку завжди використовуйте параметризовані запити або підготовлені вирази, а не збирайте SQL з рядків.

› Чому під час зняття екранування з'являється помилка про невідому послідовність?

Кожна мова допускає свій набір екранувань. Наприклад, у JSON немає \x і \0, тому інструмент показує позицію першої послідовності, яку обрана мова відхилила б. Python, як і його інтерпретатор, залишає невідомі послідовності на кшталт \d без змін.

› Чи завантажується мій текст?

Ні. Екранування та його зняття виконуються в браузері, на сервер нічого не надсилається.