Home › Developer Tools › String Escape / Unescape

String Escape / Unescape

Paste text to turn it into a correctly escaped string literal for JavaScript, JSON, Java, C#, Python, C, SQL, regular expressions, CSV or the shell, or paste an escaped string to get the raw text back. Each backslash sequence is listed with its meaning, and hidden whitespace is made visible.

Last updated:

Samples:

Escape sequences

Raw text, whitespace visible

· space   → tab   ↵ line feed   ␍ carriage return   ⍽ no-break space

Advertisement
Advertisement

How to use the String Escape / Unescape

  1. Choose Escape or Unescape at the top.
  2. Pick the target: JavaScript, JSON, Java, C#, Python, C/C++, SQL, regex, CSV or shell, and adjust its options such as quote style or dialect.
  3. Type or paste the text or escaped string. The result updates instantly.
  4. Review the escape sequence list and the visible whitespace preview to check exactly what the string contains.
  5. Copy or download the result, or press Swap to convert it back the other way.

Escape sequences by language

Most languages share the C-style backslash escapes, but the details differ. ✓ means the escape is valid in that language's normal string literal.

EscapeMeaningJSJSONJavaC#PythonC/C++
\n \r \tline feed, carriage return, tab✓✓✓✓✓✓
\b \fbackspace, form feed✓✓✓✓✓✓
\vvertical tab✓--✓✓✓
\abell---✓✓✓
\0null character✓-✓ (octal)✓✓ (octal)✓ (octal)
\xHHcharacter by hex code✓ (2 digits)--✓ (1-4 digits)✓ (2 digits)✓ (any length)
\uXXXXUTF-16 code unit✓✓✓✓✓✓ (C11/C++11)
\u{1F600}any code point✓ (ES2015)-----
\U0001F600any code point (8 digits)---✓✓✓
\/slash✓ (identity)✓----

Quoting rules outside C-style languages

TargetRuleExample: it's "ok"
SQL (standard)Double each single quote inside '…''it''s "ok"'
MySQL'' or backslash escapes \' \" \\ \n \0 \Z'it\'s \"ok\"'
CSV (RFC 4180)Quote fields with commas, quotes or line breaks; double inner quotes"it's ""ok"""
Shell, single quotesEverything literal; a quote is written '\'''it'\''s "ok"'
Shell, double quotesEscape \ " $ and backtick with a backslash"it's \"ok\""
C# verbatimOnly double quotes are doubled@"it's ""ok"""
RegexBackslash before . * + ? ^ $ { } ( ) | [ ] \ /it's "ok" (nothing special)

Tips

  • Escaping is not a defence against injection by itself. For SQL use prepared statements, for shell commands pass arguments as an array (for example subprocess.run([...])) instead of building one command string.
  • Formulas in CSV files (cells starting with =, +, - or @) can run when opened in a spreadsheet. The "Neutralize formulas" option prefixes them with an apostrophe, as recommended by OWASP.
  • Use the visible whitespace panel to find invisible problems such as trailing spaces, Windows CRLF line endings (␍↵), no-break spaces and zero-width characters.

Frequently asked questions

What does escaping a string mean?

Escaping rewrites characters that have a special meaning inside a string literal so they are read as plain text. In most C-style languages a backslash starts an escape: \" is a double quote that does not end the string, \n is a line break and \\ is a single backslash. SQL doubles the quote instead ('' inside '...'), and CSV doubles double quotes inside a quoted field.

How do I escape a single quote in SQL?

Standard SQL, PostgreSQL, SQL Server, SQLite and Oracle double it: 'O''Brien'. MySQL and MariaDB also accept backslash escapes such as \' unless NO_BACKSLASH_ESCAPES is enabled. For queries built from user input, use parameterised queries (prepared statements) instead of escaping by hand, because they also protect against SQL injection.

What is the difference between JavaScript and JSON escaping?

JSON is stricter. It only allows \" \\ \/ \b \f \n \r \t and \uXXXX, requires double quotes, and forbids raw control characters. JavaScript also accepts single quotes and backticks, \v, \0, \xHH and \u{1F600}, and treats an unknown escape such as \q as just q. This tool reports escapes that are invalid in JSON.

How do I escape special characters in a regular expression?

Put a backslash before each of . * + ? ^ $ { } ( ) | [ ] and \, and also / if the pattern is written as a /…/ literal in JavaScript. The Regex target does exactly that, so the pattern matches the text literally. Hyphens are not escaped because \- outside a character class is an error in JavaScript's Unicode mode.

How do I escape a string for bash or another shell?

The safest way is single quotes: everything inside is literal, and a single quote itself is written as '\'' (end the quote, an escaped quote, start a new quote). Double quotes still expand $, ` and \, and ANSI-C quoting $'…' lets you write \n and \t. The Smart option leaves simple words unquoted and single-quotes everything else.

Why does Java not use \u000A for a newline in a string?

The Java compiler replaces \uXXXX escapes before it parses the code, so \u000A becomes a real line break in the middle of the string literal and the file no longer compiles. That is why this tool writes control characters in Java as \n, \t or octal escapes such as \0 and \033, and uses \u only for printable characters.

Is my text sent anywhere?

No. Escaping and unescaping are done in JavaScript on your device. Nothing is uploaded or stored, so it is safe for code, keys and private data.

Are all the tools on FreeToolCabin tested for quality and accuracy?

Yes! Every tool on our site undergoes automated Q/A testing in real browser environments to ensure high precision, correct output, and zero errors. If you happen to spot a bug or have a suggestion, please contact us at [email protected] and our team will review it right away.

Related tools

JSON Escape / UnescapeEscape text for a JSON string, unescape \n and \" back to text, or stringify a whole object.Unicode Escape / UnescapeConvert text to \uXXXX, \u{...}, \x, &#...; or CSS escapes and decode them back.HTML Entity Encoder / DecoderEscape and unescape HTML entities, named or numeric.Regex TesterTest and debug regular expressions live.XML Escape / UnescapeEscape & < > " ' for XML text and attributes, unescape entities back, or wrap text in CDATA.Password GeneratorCreate strong passwords and passphrases.Hash GeneratorGenerate MD5, SHA-1, SHA-256 and SHA-512 hashes of text or files.MD5 Hash GeneratorGenerate MD5 hashes of text, lines or files and verify checksums.SHA-256 Hash GeneratorSHA-256 and HMAC-SHA256 hashes of text, lines or files, in hex or Base64.Base64 Encoder DecoderEncode or decode Base64 text and files, and make data URIs.URL Encoder DecoderPercent-encode or decode URLs, query strings and form data.Bcrypt Hash Generator & CheckerCreate bcrypt password hashes and check a password against a hash.Binary TranslatorConvert text to binary, hex, octal and back.HMAC GeneratorGenerate and verify HMAC signatures with SHA-256, SHA-512, SHA-1 or MD5.CRC32 Checksum CalculatorCalculate CRC-32, CRC-32C, CRC-16 and Adler-32 checksums of text or large files.JWT DecoderDecode JSON Web Tokens, read the claims and expiry, and verify HS256 signatures.JWT GeneratorCreate and sign HS256, HS384 or HS512 JSON Web Tokens in your browser and verify them.Password Strength CheckerSee how strong a password really is, how long it takes to crack and how to improve it.Caesar CipherEncode and decode Caesar shift ciphers and crack unknown shifts with a ranked brute force.Vigenère CipherEncrypt and decrypt Vigenère and Autokey ciphers, and crack unknown keys with frequency analysis.Atbash CipherEncode and decode Atbash ciphers (A↔Z, B↔Y) in Latin or Hebrew, with a live letter mapping table.ASCII TableFull ASCII code chart 0–255 in decimal, hex, octal, binary and HTML, with search and copy.Unicode Character LookupFind Unicode characters by name or code point and copy them with UTF-8, HTML and code escapes.Punycode ConverterConvert international domain names, emails and URLs between Unicode and xn-- Punycode, in bulk.Binary to HexConvert binary to hex instantly with steps and signed mode.Hex to BinaryConvert hex to binary instantly with steps and signed mode.Binary CalculatorAdd, subtract, multiply, divide, AND, OR, XOR and shift binary numbers with decimal values.Hex CalculatorHexadecimal + − × ÷ and AND, OR, XOR, NOT, shifts with decimal and binary equivalents.Base32 Encoder / DecoderEncode and decode Base32 (RFC 4648), Base32hex, Crockford and z-base-32 from text, hex or files.Base58 Encoder / DecoderEncode and decode Base58 and Base58Check (Bitcoin alphabet) from text or hex, with checksum verification.File Hash CheckerGet MD5, SHA-1, SHA-256 and SHA-512 checksums of files and verify them against a hash.TOTP GeneratorGenerate 2FA one-time codes from a secret key, create otpauth QR codes and verify codes.RSA Key GeneratorGenerate 2048, 3072 or 4096-bit RSA key pairs as PEM, PKCS#1, JWK or OpenSSH, locally.SSL Certificate DecoderDecode PEM SSL/X.509 certificates: subject, issuer, expiry, SANs, key and fingerprints.Text Encryption ToolEncrypt and decrypt text with a password using AES-256-GCM, entirely in your browser.Argon2 Hash GeneratorHash passwords with Argon2id, Argon2i or Argon2d and verify them against an encoded hash.Base64 to PDFDecode a Base64 string to a PDF with preview and download, or encode a PDF to Base64.Bitwise CalculatorCalculate AND, OR, XOR, NOT and bit shifts at 8–64 bits with a bit grid and all bases.Self-Signed Certificate GeneratorCreate a self-signed SSL certificate and key for localhost or dev servers, as PEM or PFX.SHA-1 Hash GeneratorSHA-1 and HMAC-SHA1 of text or files in hex or Base64, plus Git blob hashes and verify.SHA-512 Hash GeneratorSHA-512 and SHA-384 hashes of text or files in hex or Base64, HMAC and hash verification.SRI Hash GeneratorCreate Subresource Integrity hashes (sha256/384/512) and ready <script> or <link> tags.SSH Key GeneratorGenerate Ed25519 or RSA SSH key pairs in your browser: OpenSSH public key plus private key.UTF-8 Encoder / DecoderConvert text to UTF-8 bytes in hex, decimal, binary, \x or % and decode bytes back to text.UUID Decoder & ValidatorDecode any UUID: version, variant, v1/v6/v7 timestamp and MAC node, plus bulk validation.Base64 to FileDecode Base64 or a data URI to a downloadable file; detects the real file type and previews it.File Encryption ToolEncrypt and decrypt any file with a password using AES-256-GCM, entirely in your browser.Passphrase GeneratorMake strong, memorable diceware passphrases from a 7,776-word list, with entropy in bits.CSR DecoderDecode a PEM certificate signing request: subject, SANs, key size, signature and CA readiness checks.Enigma Machine SimulatorEncrypt and decrypt with a virtual Enigma I, M3 or M4: rotors, rings, plugboard and lampboard.Hex Opacity CalculatorConvert opacity percent to a 2-digit HEX alpha code and full #RRGGBBAA color, with a 0-100% table.Playfair CipherEncrypt and decrypt Playfair ciphers from a keyword, with the 5x5 key square and every digraph step.Pwned Password CheckerCheck if a password appeared in data breaches; only 5 characters of its SHA-1 hash are sent.RSA Encryption ToolEncrypt text with an RSA public key and decrypt it with the private key using RSA-OAEP in your browser.SAML DecoderDecode SAMLRequest and SAMLResponse messages to readable XML, attributes and validity times.SSL Certificate ConverterConvert SSL certificates and keys between PEM, DER, PFX/P12 and P7B in your browser.Checksum CalculatorCompute 8-bit sum, two's complement LRC, XOR/BCC, NMEA, Fletcher and Internet checksums of bytes.PBKDF2 Hash GeneratorDerive PBKDF2 keys from a password, salt and iteration count with SHA-1, SHA-256 or SHA-512.Protobuf DecoderDecode raw Protocol Buffers hex or Base64 without a schema, or add a .proto for field names.Binary Search Tree VisualizerInsert, delete and find in BST, AVL and red-black trees with animated rotations and traversals.CSR GeneratorCreate a certificate signing request (CSR) and private key with SANs, RSA or ECDSA, in your browser.MongoDB ObjectId to TimestampDecode a MongoDB ObjectId to its creation date, or build ObjectIds from dates for range queries.PGP Encrypt / DecryptEncrypt, decrypt, sign and verify PGP messages with your armored keys, entirely offline.PGP Key GeneratorGenerate an OpenPGP key pair (Curve25519, NIST ECC or RSA) with passphrase and expiry, offline.Quoted-Printable Encoder / DecoderEncode or decode quoted-printable email text (MIME) with UTF-8 and 76-character soft line breaks.
See all 65 Encoders, Hashes & Crypto →