How to use the ASCII to unicode converter
- 1Set Direction: Text → codes, Codes → text or Character map.
- 2For Text → codes, choose the Format (code points, decimal, hex, UTF-8 bytes, JavaScript, Python, CSS or HTML) and a Separator for lists.
- 3Type or paste into Text or codes. Tick Leave ASCII characters as they are to escape only accented letters, symbols and emoji.
- 4For Codes → text, paste the codes in any of those formats; the footer says which format was read. Press Copy or Use as input.
Example
Café 👍
U+0043 U+0061 U+0066 U+00E9 U+0020 U+1F44D
Format: code points. In JavaScript \u escapes the emoji becomes the surrogate pair \uD83D\uDC4D; as UTF-8 bytes it is F0 9F 91 8D.
ASCII vs Unicode
ASCII (1963) defines 128 characters, numbered 0 to 127: English letters, digits, punctuation and control codes. Unicode gives a number to every character in every writing system, plus symbols and emoji: over 150,000 characters, with room for 1,114,112. The first 128 Unicode code points are identical to ASCII, so A is 65 in both.
So "ASCII to Unicode" really means writing characters as their Unicode numbers or escapes. ASCII text converts one-to-one; anything beyond ASCII (é, €, 中, 👍) needs a code point above 127.
Code points and U+ notation
A code point is a character's Unicode number, written U+ and at least four hex digits: U+0041 is A, U+00E9 is é, U+20AC is €, U+1F44D is 👍. Choose Decimal for the same numbers in base 10 (233 for é), or Hex for 0xE9 style.
UTF-8 bytes shows how the character is stored in a file: one byte for ASCII, two for é (C3 A9), three for € (E2 82 AC), four for emoji. The Character map lists every character of your text with its code point, decimal value, UTF-8 and UTF-16 units, HTML entity and JavaScript escape side by side.
JavaScript, CSS and HTML escapes
| Format | é | 👍 |
|---|---|---|
JavaScript \u | \u00E9 | \uD83D\uDC4D (two UTF-16 units) |
JavaScript \u{…} (ES2015+) | \u00E9 | \u{1F44D} |
| Python | \xe9 | \U0001F44D |
| CSS | \E9 | \1F44D |
| HTML decimal | é | 👍 |
| HTML hex | é | 👍 |
| HTML named | é | 👍 (no name exists) |
The CSS escape ends with a space so the next character isn't read as part of the hex number. In HTML-entity formats, <, >, & and " are always escaped, even with Leave ASCII characters as they are ticked, so the output is safe to paste into markup.
Converting codes back to text
Codes → text recognizes all the formats above, so you can paste whatever you have: U+0048 U+0069, \u0048\u0069, Hi, é, 0x48 0x69, or a list of decimal numbers such as 72 105. Escapes can be mixed with normal text (Caf\u00e9 → Café). A list of two-digit hex pairs such as C3 A9 is read as UTF-8 bytes. Lists of plain numbers are read as decimal, so write hex values with 0x or U+.
Character map
The character map is the quickest way to find out what a strange character really is: a non-breaking space (U+00A0) that breaks a search, a zero-width space (U+200B) hidden in a copied URL, or a curly apostrophe (U+2019) where code needs a straight one (U+0027). Spaces, tabs and line feeds are labelled by name. For removing accents from text, use remove accents; for the bits behind each byte, the text to binary converter shows them.
Is my text private?
This tool runs entirely in your browser. Your text is not uploaded to our servers.
