Unicode to Text Converter
This free tool converts Unicode to text and text to Unicode as you type. It reads and writes \uXXXX, U+XXXX and HTML &#NNNN; codes, and it runs in your browser, so nothing you type is uploaded.
How to convert Unicode to text
- Click Unicode to Text.
- Paste your codes into the Unicode Input box.
- Read the text in the Text Output box, then click Copy.
Spaces and new lines between U+ codes only separate them, so U+0048 U+0069 gives Hi. A real space is written as U+0020. Everything that is not a code stays exactly as typed. If something looks like a code but cannot be read, such as U+110000, which is past the highest code point, U+10FFFF, a note under the result names it.
How to convert text to Unicode
- Click Text to Unicode. It is already selected when the page opens.
- Pick a format: \uXXXX, U+XXXX or &#NNNN;.
- Type or paste your text. The codes appear as you type.
To check the codes, click Unicode to Text. The codes move into the input box and your text comes back in the Text Output box, exactly as you typed it.
Unicode formats
- \uXXXX: the escape code used in JSON, Java and JavaScript. Characters above U+FFFF, such as the 😀 emoji, take two codes.
- U+XXXX: the way the Unicode Standard writes a code point, with four to six hexadecimal digits. The converter puts a space between codes.
- &#NNNN;: an HTML number code in decimal. A web page shows it as the character.
When you convert Unicode to text, the converter also reads \u{1F600}, the JavaScript form with braces, and 😀, the HTML form in hexadecimal.
Worked example: Café 😀
This is the word café, a space and a smiley face, written in each format.
- \uXXXX
- \u0043
\u0061 \u0066 \u00E9 \u0020 \uD83D \uDE00 - U+XXXX
- U+0043
U+0061 U+0066 U+00E9 U+0020 U+1F600 - &#NNNN;
- C
a f é   😀
Each character gets one code in the U+ and HTML forms. The space counts as a character, so it has its own code: U+0020, or   in the HTML form. The HTML form uses the same numbers in decimal: E9 in hexadecimal is 233, so é is é, and 1F600 is 128512. The smiley is above U+FFFF, so the \uXXXX form needs two codes for it, \uD83D\uDE00. Paste any of the three lines into Unicode to Text and you get Café 😀 back exactly as typed.
Frequently asked questions
How do I convert Unicode to text?
Click Unicode to Text and paste your codes into the Unicode Input box. The text appears in the Text Output box straight away. The converter reads \uXXXX, \u{XXXXX}, U+XXXX, &#NNNN; and &#xHHHH; codes, and you can mix them. Everything else stays exactly as typed, and a note under the result names anything that looks like a code but cannot be read.
What does U+ mean in Unicode?
U+ marks a Unicode code point: the number Unicode gives each character. The number is in hexadecimal, which uses the digits 0 to 9 and the letters A to F, and has four to six digits. U+0041 is the capital letter A, U+00E9 is é, and the highest code point is U+10FFFF.
Why does an emoji turn into two \u codes?
One \uXXXX code holds four hexadecimal digits, so it only reaches U+FFFF. Characters above that, such as the 😀 emoji (U+1F600), are written as two codes called a surrogate pair, so 😀 becomes \uD83D\uDE00. JSON and Java need this form when such a character is written as \u codes, and JavaScript accepts it too.
Why does one symbol sometimes give several codes?
Some symbols are built from more than one character. An accented letter can be one character, é (U+00E9), or a plain e (U+0065) followed by an accent (U+0301), and the two look the same. The UK flag 🇬🇧 is two letter symbols, U+1F1EC and U+1F1E7, and the flags of England, Scotland and Wales are made of seven characters each. A family emoji such as 👨👩👧 joins three people with two invisible joiners, U+200D. The converter keeps every part as typed, so the codes turn back into exactly the same text.
Is the text I convert sent anywhere?
No. The conversion happens in your browser, and nothing you type is uploaded or saved.
Related tools
- HTML Entity Encoder: turn characters into named HTML codes, such as £ for £.
- Binary / Decimal / Hex Converter: turn a hexadecimal number such as 1F600 into decimal, 128512.
- URL Encoder/Decoder: make text safe to use in a web address.
- Base64 Encoder/Decoder: encode text as Base64 and decode it back.