OneFreePlace
TOOL #350 · UNICODE ESCAPES

Unicode Escape / Unescape

A browser-local Unicode workbench for code-point escapes, UTF-16 surrogate pairs, Python/C-style escapes, legacy %u, U+ notation and CSS hex escapes — with strict scalar validation, invisible/bidi audits, normalization insight, exact round-trip verification and batch files.

6 notation profilesSurrogate-awareUnicode scalar guardInvisible + bidi auditRound-trip verifiedBatch ZIPNo upload
Input
Verified output
Code points0
Graphemes0
Escapes processed0
UTF-8 bytes0 → 0
NFC—
Verification—
Processing0 ms

Unicode audit

ReadyConvert input to run the scalar, invisibility and normalization audit.

Why this is safer than find/replace

Supplementary characters such as emoji are not split accidentally: code-point profiles use one scalar escape, while UTF-16 profiles generate and validate the correct surrogate pair. Existing escape-like text can be protected, malformed/out-of-range escapes are reported with line and column, and escaped output is immediately unescaped again before Copy/Download is enabled.

Engine ready. Ctrl/Cmd + Enter converts.

Unicode profile

Code points0
UTF-16 units0
Graphemes0
UTF-8 bytes0
Invisible / bidi0 / 0
Normalization—

Inspector works at Unicode code-point level; grapheme count uses Intl.Segmenter when available.

Code-point inspector

#CharacterCode pointDecimalUTF-8UTF-16Flags

Showing up to 500 code points.

Batch Unicode processor

Process multiple text/code files with the current settings. Files never leave this browser; successful outputs are packed into a ZIP locally.

Drop or choose text/code files

No files selected.

Example: \u00E9 instead of \u00e9.

Disable when you need every control character represented as an escape.

Prevents literal text such as \u0041 from being unintentionally decoded after a round trip.

Malformed and out-of-range scalar values are always preserved and reported rather than silently repaired.

Off by default so this Unicode tool does not unexpectedly rewrite file paths or language-specific string syntax.

Use 2+ only when intentionally unpacking text such as \u005Cu0041.

Default is lossless. NFKC/NFKD may intentionally change compatibility characters.

Downloaded outputs are UTF-8.

Conversion, inspection, file reading and ZIP creation are local. No API, account, upload endpoint or analytics dependency is required by this package.

Code point vs UTF-16

JS code point can represent 😀 as one \u{1F600}. UTF-16 uses the two code units \uD83D\uDE00. This tool validates surrogate pairing before decoding.

Notation profiles

JS:      \u00E9  \u{1F600}
UTF-16:  \u00E9  \uD83D\uDE00
Python:  \u00E9  \U0001F600
Legacy:  %u00E9  %uD83D%uDE00
U+:      U+00E9 U+1F600
CSS:     \0000E9\01F600

Unicode scalar guard

Surrogate code points U+D800–U+DFFF are reserved for UTF-16 encoding and are not Unicode scalar values. Lone surrogate escapes are preserved and flagged instead of being converted into corrupt text.

Invisible and bidi review

The audit highlights zero-width characters, ZWJ/ZWNJ, bidi controls, variation selectors, replacement characters and Unicode noncharacters. These can be legitimate, but invisible controls deserve review in copied identifiers, source code and security-sensitive text.

Normalization

Visually similar text can use different code-point sequences, such as composed é and e + U+0301. The tool reports NFC status and offers optional normalization, but never normalizes by default.

Scope boundary

This tool operates on Unicode code points and escape notation. It does not add JavaScript or JSON quotes, escape language delimiters, or sanitize HTML. Use the dedicated JavaScript/JSON/HTML tools for those contexts.