Unicode Text Converter

See any text as Unicode code points, UTF-8 bytes, HTML entities and escape sequences.

Any characters, including emoji and accents.
Clear
ConvertedU+0048 U+0065 U+006C U+006C U+006F U+0020 U+2014 U+0020 U+0031 U+0032 U+0033 U+0020 U+00B0 U+0043 U+0020 U+2713full output in the table below
Characters16
UTF-8 bytes21multi-byte characters present
Bytes per character1.31

Full output

U+0048 U+0065 U+006C U+006C U+006F U+0020 U+2014 U+0020 U+0031 U+0032 U+0033 U+0020 U+00B0 U+0043 U+0020 U+2713

Character by character

CharCode pointDecimalUTF-8Bytes
HU+004872481
eU+0065101651
lU+006C1086C1
lU+006C1086C1
oU+006F1116F1
·U+002032201
U+20148212E2 80 943
·U+002032201
1U+003149311
2U+003250321
3U+003351331
·U+002032201
°U+00B0176C2 B02
CU+004367431
·U+002032201
U+271310003E2 9C 933

Characters, code points and bytes

Unicode assigns every character a code point — a number, written U+0041 for "A". How that number is stored is a separate question, decided by the encoding.

UTF-8 uses one byte for ASCII, two for most European accents and Greek, three for most of the rest including CJK, and four for emoji and historic scripts. So character count and byte count are different numbers, and the difference is exactly why database column limits and SMS lengths behave oddly with non-English text.

The escape forms

  • HTML entities— for an em dash. Useful when a document's encoding is unreliable.
  • JavaScript escapes. Characters above U+FFFF need a surrogate pair of two escapes, which is why an emoji often reports a length of 2 in JavaScript.
  • CSS escapes — a backslash, hex digits and a trailing space to terminate the sequence.
  • Percent-encoding — each UTF-8 byte as %XX, the form used in URLs.

Why text "looks fine but breaks"

Visually identical characters can be different code points: a real minus sign (U+2212) is not a hyphen (U+002D), and a curly apostrophe (U+2019) is not an ASCII one. Pasting from a word processor is the usual culprit. Inspecting the code points is the quickest way to find it.

Everything here runs on the server and nothing is stored.