Text
Unicode Escape Converter
Show Unicode \uXXXX escape sequences for every character — perfect for debugging encoding issues.
Press ⌘ Enter to run
21 words · 3 lines
How this tool handles files
- Processing
- In your browser, on-device
- Storage
- Nothing stored
- Output
- A file you download
- Your responsibility
- Review before official use
- Runs in your browser. Your file is processed on your own device and, on this site, is not uploaded to our servers.
- Nothing is stored. Your file and its output are gone the moment you close or reload the page.
- Review sensitive files (bank, ID, medical) and check the output before sharing it.
Every tool on FormatOS runs in your browser. Read our Privacy Policy and File Handling Policy.
Common uses
- Debug Unicode rendering issues
- Inspect mixed-script input
Limitations
- Combining characters are shown individually
Where \uXXXX escapes earn their keep
The Unicode Escape Converter takes any text you give it and rewrites every character as its Unicode escape sequence — the letter A becomes A, an accented é becomes é. That representation is most useful when you are debugging text that looks right but behaves wrong: a name that won't match in a database, a string that breaks a JSON parser, or a label that renders as a blank box. Seeing the underlying code points tells you exactly which characters are present, including ones the eye cannot distinguish.
For web and software work, it helps you spot the difference between a normal hyphen and an en dash, a straight quote and a curly one, or a regular space and a non-breaking space ( ) that snuck in from a copy-paste. It is also handy for inspecting mixed-script input — say, Latin letters mixed with Cyrillic look-alikes — and for preparing escaped string literals to drop into source code or config files.
Beyond development, it suits data-prep and admin checks: confirming that a CSV cell or a form field contains only the characters you expect, or examining text pulled from a PDF, an e-book, or an archived document where invisible or unexpected characters often hide. If your text fits cleanly in the ASCII range, the escapes will simply confirm that.
The flow and what it actually outputs
The process is direct: paste or type your text into the input, and the escaped version appears in the output, which you can copy or download. Everything runs in your browser — on this site the text is not uploaded, and nothing persists once you close the tab. There are no accounts, quotas, or server round-trips involved.
Under the hood, the tool walks your text one code point at a time and emits \u followed by that code point's hexadecimal value, lower-case and zero-padded to at least four digits. The escapes are concatenated with no separators and no spaces, so "Hi" becomes Hi. It reads code points, not raw UTF-16 units, so a character outside the Basic Multilingual Plane is shown as a single code point rather than a surrogate pair.
It is worth being clear about what the tool does not do. It only encodes text into escapes; it does not decode escapes back into characters, and it offers no toggles for upper-case hex, the \u{...} brace form, \xXX, HTML entities, or code-point spacing. It is a one-direction inspector, not a configurable codec.
Pitfalls to keep in mind
The most important caveat concerns characters above U+FFFF, such as most emoji. An emoji like 😀 (U+1F600) is emitted as ὠ0 — five hex digits. That faithfully shows the code point, but it is not a valid JavaScript \uXXXX literal, which expects exactly four hex digits or the brace syntax \u{1f600}. If you paste this output straight into source code, astral characters will not round-trip correctly; you will need to convert them to the brace form or a surrogate pair yourself.
Combining characters are listed individually, which is accurate but can surprise you. An accented letter typed as a base plus a combining mark shows two escapes, while the same letter as a single precomposed character shows one. If you are comparing strings, normalize them first, because identical-looking text can produce different escapes.
Finally, the output has no delimiters, so long runs of escapes form one unbroken string that is hard to scan by eye. For careful inspection, work with short selections rather than pasting an entire document at once.
Checking your result before you rely on it
Start by confirming the obvious: a quick spot-check that a known character maps to the code point you expect (a plain space is , a non-breaking space is ) tells you the tool is reading your input as you intended. Count the escapes against your character count — a mismatch usually means combining marks or an astral character that expanded differently than you assumed. If you see any escape longer than four hex digits, treat it as an above-BMP code point and convert it deliberately before using it in code.
When the escapes are headed into a programming language, paste a small sample back through that language's own parser to verify it decodes to the original text, since escape syntax differs between JavaScript, JSON, Python, and others. For anything official, financial, or legal — identifiers, regulated records, or contract text — do not treat the escaped output as proof on its own; verify the underlying characters manually, ideally against a second source or a trusted normalization step, before acting on what you find.
Frequently asked questions
A \uXXXX escape sequence for every character — a four-digit, zero-padded hexadecimal code point — which is the form used in JSON and many programming languages.
It makes invisible or look-alike characters visible, so you can spot a non-breaking space, a smart quote, or a hidden control character that's causing trouble.
Each code point is escaped individually, so a base letter and its combining accent appear as separate \u sequences.
No. It runs entirely in your browser.
Related text tools
Tool last reviewed: June 30, 2026 · Report a problem