Wat het doet
De string-escapetool zet tekst om in een vorm die in een stringliteral past, en zet geëscapete strings terug naar gewone tekst. Er zijn negen doelen: JSON, JavaScript, Java en C#, Python, SQL-stringliterals, CSV-velden, XML-tekst en -attributen, reguliere expressies en POSIX-shellopdrachten. Elk volgt de regels van die taal, zodat je het resultaat zonder syntaxfouten direct in je code kunt plakken.
Typische toepassingen zijn een bericht van meerdere regels of een Windows-pad in een JSON-configuratiebestand zetten, een stukje HTML in een JavaScript-string opnemen, een bestandsnaam met spaties voor een shellscript tussen aanhalingstekens zetten of een letterlijke zoekterm zoals price (USD) omzetten in een reguliere expressie die precies die tekst vindt.
Zo gebruik je het
- Kies Escapen of Unescapen.
- Kies de taal of het formaat.
- Plak je tekst in het invoerveld of klik op Voorbeeld. Het resultaat werkt bij terwijl je typt.
- Kopieer de uitvoer of klik op Als invoer gebruiken om de omzetting om te keren en te controleren of je het origineel terugkrijgt.
Voor JSON, JavaScript, Java/C# en Python kun je ook alle niet-ASCII-tekens escapen. Zo krijg je een pure ASCII-string die elke bestandscodering overleeft.
Voorbeeld
Dezelfde regel geëscapet voor verschillende doelen:
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'
Regels per formaat
- JSON: escapet aanhalingstekens, backslashes en stuurtekens, precies zoals
JSON.stringify. - JavaScript: escapet daarnaast enkele aanhalingstekens, backticks, verticale tabs en de regelscheidingstekens U+2028 en U+2029.
- Java / C#: backslash-escapes en
\uXXXX; bij unescapen worden ook octale escapes uit Java en\xen\Uuit C# geaccepteerd. - Python: backslash-escapes met
\x,\uen\U; onbekende escapes blijven zoals ze zijn. - SQL: verdubbelt enkele aanhalingstekens voor standaard SQL-stringliterals.
- CSV: zet de waarde tussen dubbele aanhalingstekens en verdubbelt de aanhalingstekens erin als hij een komma, aanhalingsteken, regeleinde of spaties aan de randen bevat.
- XML: vervangt de vijf voorgedefinieerde entiteiten; bij unescapen worden ook numerieke tekenverwijzingen gedecodeerd.
- Reguliere expressie: zet een backslash voor elk teken met een speciale betekenis, zodat het patroon de tekst letterlijk vindt.
- Shell: zet de waarde tussen enkele aanhalingstekens, die in POSIX-shells elke expansie uitschakelen, en schrijft aanhalingstekens erin als
'\''.
Veelgestelde vragen
› Wat betekent een string escapen?
Sommige tekens hebben een speciale betekenis in een stringliteral, zoals het aanhalingsteken dat hem afsluit of een regeleinde. Escapen vervangt ze door een veilige reeks, meestal een backslash met een letter, zodat de string in broncode, een query of een bestand kan zonder iets te breken.
› Plak ik de aanhalingstekens rond de string ook?
Nee. Plak alleen de inhoud. Het resultaat is wat tussen de aanhalingstekens in je code komt. Bij CSV en shell, die hele waarden tussen aanhalingstekens zetten, voegt de tool de buitenste aanhalingstekens zelf toe als dat nodig is.
› Is SQL-escaping genoeg tegen SQL-injectie?
Enkele aanhalingstekens verdubbelen levert een geldige stringliteral op, handig als je een query met de hand schrijft of een migratiescript voorbereidt. Gebruik in applicatiecode altijd geparametriseerde queries of prepared statements in plaats van SQL uit strings op te bouwen.
› Waarom meldt unescapen een onbekende escapereeks?
Elke taal accepteert andere escapes. JSON kent bijvoorbeeld geen \x of \0, dus de tool toont de positie van de eerste reeks die de gekozen taal zou weigeren. Python laat onbekende escapes zoals \d ongewijzigd, net als de Python-interpreter.
› Wordt mijn tekst geüpload?
Nee. Escapen en unescapen gebeurt in je browser en er wordt niets naar een server gestuurd.