# Strings escapen en unescapen

Escape tekst voor een JSON- of JavaScript-string, een SQL-string, een CSV-veld, een reguliere expressie of een shellwoord, of maak het escapen ongedaan.

https://codeknife.dev/nl/escape-unescape/

## Wat het doet

Escapet tekst zodat die in een JSON- of JavaScript-string, een SQL-string, een CSV-veld, een reguliere expressie of een shellwoord kan staan, en maakt het escapen ongedaan. Elke notatie escapet precies de tekens die ze nodig heeft en geen andere.

## Zo gebruik je het

1. Typ of plak tekst, of sleep een tekstbestand erin.
2. Kies waar de tekst heen gaat (**JSON-string**, **JavaScript-string**, **SQL-string**, **CSV-veld**, **Reguliere expressie** of **Shellwoord**) en of je wilt **Escapen** of **Unescapen**.
3. Kopieer of download het resultaat, of gebruik **Uitvoer als invoer gebruiken** om het de volgende invoer te maken.

## Voorbeelden

`He said "it's fine"` en een regeleinde escapen:

JSON geeft `He said \"it's fine\"\n`, SQL geeft `He said "it''s fine"` en de shell geeft `'He said "it'\''s fine"'`.

## Goed om te weten

- JSON en JavaScript escapen de backslash, het aanhalingsteken rond de string, regeleinden en stuurtekens. Unescapen leest `\n`, `\t`, `\uXXXX` en dergelijke; JavaScript leest ook `\xHH` en `\u{…}`.
- SQL verdubbelt het enkele aanhalingsteken. Dat is goed voor een literal die je met de hand schrijft; gebruik voor code gebonden parameters.
- Een CSV-veld staat alleen tussen aanhalingstekens als het een komma, een aanhalingsteken of een regeleinde bevat, en aanhalingstekens erin worden verdubbeld.
- Een shellwoord staat tussen enkele aanhalingstekens en een enkel aanhalingsteken erin wordt geschreven als `'\''`, zodat niets erin wordt uitgebreid.

## Waarom escapet elke notatie anders?

Elke syntaxis heeft zijn eigen speciale tekens. Een JSON-string heeft geëscapete aanhalingstekens, backslashes en stuurtekens nodig. Een SQL-string heeft alleen een verdubbeld enkel aanhalingsteken nodig. Een CSV-veld wordt tussen aanhalingstekens gezet als het een komma, aanhalingsteken of regeleinde bevat. Een reguliere expressie escapet haar operatoren en een shellwoord staat tussen enkele aanhalingstekens zodat niets erin wordt uitgebreid.

## Veelgestelde vragen

### Is escapen genoeg om SQL-injectie te stoppen?

Nee. Aanhalingstekens verdubbelen is wat deze tool laat zien en het is goed voor een literal in een query die je met de hand schrijft, maar het is geen verdediging voor code. Geef waarden door als gebonden parameters, zodat ze nooit deel van de SQL-tekst zijn.

### Wat is het verschil tussen een JSON- en een JavaScript-string?

JSON staat maar enkele escapes toe en gebruikt altijd dubbele aanhalingstekens. JavaScript staat ook enkele aanhalingstekens, \x41 toe, en escapes in beide aanhalingsstijlen. Unescapen als JSON weigert dus reeksen die JavaScript wel zou accepteren.

### Stuurt deze tool mijn tekst ergens naartoe?

Nee. Alles gebeurt in je browser. Wat je typt wordt nooit naar onze servers gestuurd.