DevToolPal
PL

Escapowanie i unescapowanie ciągów

Escapuj lub cofaj escapowanie ciągów znaków dla JSON, JavaScript, Java/C#, Python, SQL, CSV, XML, wyrażeń regularnych i poleceń powłoki.

Działa lokalnie, nic nie jest wysyłane

Opcje

Tryb

Wejście

0 znaków · 0 B

Wynik

0 znaków · 0 B

Co robi narzędzie

Narzędzie do escapowania zamienia tekst na postać, którą można umieścić w literale tekstowym, i przywraca escapowane ciągi do zwykłego tekstu. Obsługuje dziewięć celów: JSON, JavaScript, Java i C#, Python, literały tekstowe SQL, pola CSV, tekst i atrybuty XML, wyrażenia regularne oraz polecenia powłoki POSIX. Każdy stosuje reguły swojego języka, więc wynik można wkleić prosto do kodu bez błędów składni.

Typowe zastosowania to wpisanie wielowierszowego komunikatu lub ścieżki Windows do pliku konfiguracyjnego JSON, osadzenie fragmentu HTML w ciągu JavaScript, ujęcie w cudzysłów nazwy pliku ze spacjami w skrypcie powłoki albo zamiana dosłownej frazy, np. price (USD), na wyrażenie regularne, które dokładnie ją znajdzie.

Jak używać

  1. Wybierz Escapuj lub Cofnij escapowanie.
  2. Wybierz język lub format.
  3. Wklej tekst w polu wejściowym albo kliknij Przykład. Wynik aktualizuje się w trakcie pisania.
  4. Skopiuj wynik lub kliknij Użyj jako wejścia, aby odwrócić konwersję i sprawdzić, czy wraca oryginał.

Dla JSON, JavaScript, Java/C# i Pythona możesz też escapować wszystkie znaki spoza ASCII i otrzymać czysty ciąg ASCII, który przetrwa każde kodowanie pliku.

Przykład

Ta sama linia escapowana dla różnych celów:

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'

Reguły dla poszczególnych formatów

  • JSON: escapuje cudzysłowy, ukośniki wsteczne i znaki sterujące, dokładnie jak JSON.stringify.
  • JavaScript: dodatkowo escapuje apostrofy, grawisy, tabulatory pionowe oraz separatory wierszy U+2028 i U+2029.
  • Java / C#: sekwencje z ukośnikiem wstecznym i \uXXXX; przy cofaniu akceptuje też ósemkowe sekwencje Javy oraz \x i \U z C#.
  • Python: sekwencje z ukośnikiem wstecznym, \x, \u i \U; nieznane sekwencje pozostają bez zmian.
  • SQL: podwaja apostrofy zgodnie ze standardowymi literałami tekstowymi SQL.
  • CSV: ujmuje wartość w podwójne cudzysłowy i podwaja wewnętrzne, jeśli zawiera przecinek, cudzysłów, nową linię lub spacje na brzegach.
  • XML: zastępuje pięć predefiniowanych encji; przy cofaniu dekoduje też numeryczne odwołania do znaków.
  • Wyrażenie regularne: dodaje ukośnik wsteczny przed każdym znakiem o specjalnym znaczeniu, aby wzorzec dopasował tekst dosłownie.
  • Powłoka: ujmuje wartość w apostrofy, które w powłokach POSIX wyłączają wszelkie rozwijanie, a wewnętrzne apostrofy zapisuje jako '\''.

FAQ

› Co oznacza escapowanie ciągu znaków?

Niektóre znaki mają w literale tekstowym specjalne znaczenie, np. cudzysłów, który go kończy, albo znak nowej linii. Escapowanie zastępuje je bezpieczną sekwencją, zwykle ukośnikiem wstecznym z literą, aby ciąg można było wkleić do kodu, zapytania lub pliku bez psucia go.

› Czy wklejać też cudzysłowy wokół ciągu?

Nie. Wklej tylko zawartość. Wynik to to, co trafia między cudzysłowy w kodzie. W CSV i powłoce, gdzie w cudzysłów ujmuje się całą wartość, narzędzie samo dodaje zewnętrzne cudzysłowy, gdy są potrzebne.

› Czy escapowanie SQL wystarczy przeciw SQL injection?

Podwojenie apostrofów daje poprawny literał tekstowy, co przydaje się przy ręcznym pisaniu zapytania lub skryptu migracji. W kodzie aplikacji zawsze używaj zapytań parametryzowanych lub prepared statements zamiast składać SQL z ciągów znaków.

› Dlaczego przy cofaniu escapowania pojawia się nieznana sekwencja?

Każdy język akceptuje inny zestaw sekwencji. JSON nie ma na przykład \x ani \0, więc narzędzie wskazuje pozycję pierwszej sekwencji, którą wybrany język by odrzucił. Python, tak jak jego interpreter, zostawia nieznane sekwencje, np. \d, bez zmian.

› Czy mój tekst jest przesyłany?

Nie. Escapowanie i jego cofanie odbywa się w przeglądarce i nic nie trafia na serwer.