yet another

Unicode Converter

One box, every format. Convert Unicode text to code points, UTF-8 and UTF-16 code units, escape sequences and HTML entities, and back again.

Paste characters or any mix of escapes: U+00E9, \u00E9, \u{1F600}, é, 0xE9, %C3%A9, CSS escapes and more.

Characters

The decoded characters.

XML/HTML entities

Markup-significant characters as entities.

Hex NCRs

Hexadecimal numeric character references.

Decimal NCRs

Decimal numeric character references.

JavaScript / Java

Escape sequences for JavaScript and Java source.

Rust

Rust string escape sequences.

Perl

Perl \x{...} escape sequences.

CSS

CSS escapes, e.g. for the content property.

Percent-encoded

UTF-8 percent-encoding for URLs.

Unicode U+ notation

Code points in U+ notation.

0x notation

Code points with 0x prefix.

UTF-8 code units

Hex bytes of the UTF-8 encoding.

UTF-16 code units

Hex code units of the UTF-16 encoding.

Hex code points

Space-separated hexadecimal code points.

Decimal code points

Space-separated decimal code points.

what

What is a Unicode converter?

Every character on your screen is stored as a number. The letter é is code point U+00E9. In UTF-8 it travels as two bytes, C3 A9. In a JavaScript string it appears as \u00E9, in an HTML file as é, and in a URL as %C3%A9.

This Unicode text converter turns any one of these forms into all the others: U+ and 0x notation, UTF-8 and UTF-16 code units, numeric character references, percent-encoding, and escape syntax for JavaScript, CSS, Rust and Perl. Every panel works in reverse too, so you can paste escapes into any box and read the decoded characters.

Everything runs locally in your browser. The text you paste never leaves the page.

Read more: What is Unicode? Code points, planes, and why é is U+00E9

how

How to use the converter

  1. 01

    Paste your input

    Drop characters or any mix of escape formats into the input box. Results update as you type, no button needed.

  2. 02

    Pick the format you need

    Each panel shows the same content in a different notation. Hit Copy on the one you want.

  3. 03

    Convert in reverse

    Edit any panel and press its Convert button to use that panel as the source. Everything else updates from it.

  4. 04

    Handle bare numbers

    If your input mixes text with raw numbers, set Treat bare numbers as so the tool reads them as hex, decimal, UTF-8 bytes or UTF-16 units.

  5. 05

    Tune each format

    Panels carry their own switches: Keep ASCII, ES6 braces, padding width, bidi handling. Flip one and the output rewrites itself.

  6. 06

    Rescue tricky input

    Extract escapes strips a paste down to its escapes only. Separate spaces out run-together U+ or 0x codes. Inspect opens a per-character report with names, blocks and scripts.

Read more: How our Unicode text converter works under the hood

Why

Why you might need a Unicode converter

Fix mojibake

When café shows up as café, something decoded UTF-8 bytes as Latin-1. The UTF-8 panel shows you the actual bytes so you can prove which encoding broke.

Write internationalized code

Grab \u00E9-style escapes for JavaScript or Java source, or \u{...} sequences for Rust, without leaving the browser.

Style glyphs in CSS

The content property needs escapes like \2665. The CSS panel produces exactly that, trailing space included.

Debug URLs

Percent-encoding shows how non-ASCII characters travel through links and query strings, byte by byte.

See invisible characters

Zero-width spaces and bidi control marks are real characters that render as nothing. The code point panels make them visible.

Identify unknown characters

What is this character, exactly? Click Inspect on the Characters panel and every glyph gets its Unicode name, block, category and script.

Read more: Percent-encoding in URLs: why é becomes %C3%A9

FAQ

Frequently asked questions

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

A code point is the number Unicode assigns to a character, written like U+00E9. A code unit is how that number is stored in a specific encoding. UTF-16 stores characters beyond U+FFFF as two code units called a surrogate pair, so the emoji U+1F600 becomes D83D DE00.

What is the difference between UTF-8 and UTF-16?

UTF-8 is the wire format of the web: ASCII stays one byte and other characters take two to four. UTF-16 is what JavaScript, Java and Windows use in memory. When you see \uXXXX escapes in source code, you are looking at UTF-16 code units.

Why does one emoji show up as two code units?

Anything above U+FFFF does not fit in a single 16-bit unit, so UTF-16 splits it into a lead and a trail surrogate. The emoji itself is still one code point; only its storage is split.

Can I turn \uXXXX escapes back into readable text?

Yes. Paste them into the input box, or into the JavaScript panel and press its Convert button. The Characters panel shows the decoded text.

What are HTML entities and NCRs?

Both write characters as ASCII-safe markup. Named entities use names like & and é. Numeric character references use the code point instead: é in hexadecimal or é in decimal. Browsers render all three identically.

How do I find the name of a character?

Paste it into the input box, then click Inspect on the Characters panel. Each character comes back with its code point, official Unicode name, block, general category and script, all looked up locally in your browser.

What is the difference between UTF-8 and percent-encoding?

Percent-encoding is UTF-8 with a % sign in front of each byte. The letter é is two UTF-8 bytes, C3 A9, and travels in a URL as %C3%A9. The UTF-8 panel shows the bytes; the Percent-encoded panel shows the URL form.

Does this tool send my text to a server?

No. All conversion runs in your browser with JavaScript. Nothing you paste is uploaded, logged or stored.

Is this Unicode converter free?

Yes. It is free to use, with no sign-up and no limits.

further reading

Authoritative Unicode references