By Updated

Unicode Converter

Convert text to and from Unicode escapes, code points, UTF-8 hex bytes, and Unicode normalization forms

Interactive tool

Input

Operation
Options

No conversion yet

Paste any text or Unicode escapes to convert

What is a Unicode Converter?

A Unicode converter translates text between human-readable characters and the multiple machine representations used to encode them: backslash escapes (\u00E9), code points (U+00E9), and UTF-8 hex bytes (C3 A9). It also normalizes text into canonical forms so that visually identical strings compare equal.

How to Use This Unicode Converter

  1. 1Paste your text or escape sequences into the input area
  2. 2Pick the conversion direction you need
  3. 3For escapes, toggle uppercase hex and ASCII-only options as needed
  4. 4For normalization, choose NFC, NFD, NFKC, or NFKD
  5. 5Copy the result or download it as a text file
What you get

Key features

Two-Way Escape Conversion

Convert characters to \uXXXX or \u{XXXX} escapes and back, including astral plane code points

Code Point Format

Generate U+ prefixed code points or parse them back into characters

UTF-8 Byte Conversion

See exact UTF-8 bytes for each character or rebuild text from a hex byte stream

Unicode Normalization

Apply NFC, NFD, NFKC, or NFKD with one click

Character Breakdown Table

Inspect each character with its code point, UTF-16 units, and UTF-8 bytes side by side

Length Awareness

Compare code unit count, code point count, and UTF-8 byte count to spot encoding pitfalls

Live Conversion

Output updates instantly as you change input or options

100% Private

All conversion runs in your browser. Nothing is uploaded

Why Use a Unicode Converter?

Bugs in modern apps often come from character encoding mismatches: a JSON string with curly quotes that crashes a parser, a database column with mixed normalization, an API that expects backslash-escaped non-ASCII characters. A reliable Unicode converter gives you exact control to inspect, escape, and normalize text without guessing.

Common use cases

  • Embedding non-ASCII characters in JSON or source code via \u escapes
  • Debugging garbled text by inspecting raw UTF-8 bytes
  • Normalizing user input before storing or comparing
  • Identifying confusable characters in security-sensitive contexts
  • Building lookup tables of code points
  • Writing tests for internationalized content
  • Educating teammates on Unicode internals
  • Cleaning up copied text with hidden formatting characters

NFC vs NFD vs NFKC vs NFKD

NFC composes characters into the shortest canonical sequence. NFD decomposes them into base plus combining marks. NFKC and NFKD additionally apply compatibility decomposition, replacing presentation variants with their canonical equivalents. NFC is the typical default for storage and transmission. NFD is useful for stripping diacritics. NFKC and NFKD help collapse visually similar characters into a normalized form.

Astral Plane Characters

Characters above U+FFFF (emoji, many CJK extension blocks) are encoded as surrogate pairs in UTF-16, but they have a single code point. The converter uses \u{XXXX} for code points outside the BMP and supports the Array.from approach so each emoji is treated as one character, not two.

Pro tips

Tips & best practices

Use \u{...} for emoji

Surrogate pair escapes (\uD83D\uDE80) work but are harder to read. The \u{1F680} form is supported in modern JavaScript and JSON5

Normalize before comparing

Two visually identical strings can differ at the byte level if one is NFC and the other NFD. Normalize both sides to NFC for safe equality

Watch the byte count

A common bug is assuming string length equals byte length. UTF-8 bytes vs code points vs code units are all shown to make encoding clear

Strip with NFD plus regex

To remove diacritics, normalize to NFD then strip combining marks with /\p{M}/gu in your code. The Unicode converter is the first half of that pipeline

Hex bytes catch invalid sequences

If converting UTF-8 hex back yields replacement characters, the original byte sequence was not valid UTF-8

Built for trust

Privacy & security

This Unicode converter runs entirely in your web browser. Your text is never uploaded to any server, stored in any database, or transmitted anywhere. All conversions are computed locally on your device.

Frequently Asked Questions

What is the difference between a code point and a code unit?

A code point is the abstract Unicode number for a character (for example U+1F680 for the rocket emoji). A code unit is a chunk of an encoding, typically 16 bits in UTF-16 or 8 bits in UTF-8. A single code point can take multiple code units, especially for emoji and astral plane characters.

Why does my JSON string have \u escapes?

JSON encoders often escape non-ASCII characters to keep payloads ASCII-safe. The escape and the original character are equivalent at the JSON layer. Use this converter to switch between escaped and human-readable forms.

When should I use NFC vs NFD?

NFC (canonical composition) is the recommended form for storing and transmitting text on the modern web. NFD (canonical decomposition) is useful when you want to strip diacritics or analyze base characters separately from accent marks.

How are emoji and CJK extension characters handled?

These characters live above U+FFFF and are encoded as surrogate pairs in UTF-16. The converter exposes them as single code points using \u{XXXX} escape format and counts them as one entry in the character breakdown.

Why do I see replacement characters when decoding UTF-8 hex?

Replacement characters (U+FFFD) appear when a byte sequence is not valid UTF-8. The decoder substitutes them rather than crashing so you can spot where the input was corrupted or truncated.

Is my input sent anywhere?

No. The Unicode converter runs entirely in your browser using native JavaScript APIs. Your text never leaves your device, is not stored, and is not transmitted to any server.