Unicode character inspector
Code points, names and byte lengths of any text.
FreeRuns in your browserNo signupUpdated 2026-10-29
Code points
30
29 visible characters (grapheme clusters)
UTF-8 bytes
47
32 UTF-16 units, which is what JavaScript's .length counts
Invisible characters
1
Zero-width, direction marks, no-break spaces and the byte order mark
Categories come from Unicode general categories and script properties. Click a code point for its page on unicode.org.
Characters
| Char | Code point | UTF-8 | UTF-16 | Category |
|---|---|---|---|---|
| C | U+0043 | 43 | 0043 | Uppercase letter |
| a | U+0061 | 61 | 0061 | Lowercase letter |
| f | U+0066 | 66 | 0066 | Lowercase letter |
| é | U+00E9 | C3 A9 | 00E9 | Lowercase letter |
| · | U+0020 | 20 | 0020 | Space |
| م | U+0645 | D9 85 | 0645 | Letter (Arabic, right-to-left) |
| ر | U+0631 | D8 B1 | 0631 | Letter (Arabic, right-to-left) |
| ح | U+062D | D8 AD | 062D | Letter (Arabic, right-to-left) |
| ب | U+0628 | D8 A8 | 0628 | Letter (Arabic, right-to-left) |
| ا | U+0627 | D8 A7 | 0627 | Letter (Arabic, right-to-left) |
| · | U+0020 | 20 | 0020 | Space |
| 👋 | U+1F44B | F0 9F 91 8B | D83D | Emoji |
| · | U+1F3FD | F0 9F 8F BD | D83C | Skin tone modifier 4 |
| · | U+0020 | 20 | 0020 | Space |
| n | U+006E | 6E | 006E | Lowercase letter |
| a | U+0061 | 61 | 0061 | Lowercase letter |
| ï | U+00EF | C3 AF | 00EF | Lowercase letter |
| v | U+0076 | 76 | 0076 | Lowercase letter |
| e | U+0065 | 65 | 0065 | Lowercase letter |
| · | U+200B | E2 80 8B | 200B | Zero width space |
| z | U+007A | 7A | 007A | Lowercase letter |
| e | U+0065 | 65 | 0065 | Lowercase letter |
| r | U+0072 | 72 | 0072 | Lowercase letter |
| o | U+006F | 6F | 006F | Lowercase letter |
| ‑ | U+2011 | E2 80 91 | 2011 | Punctuation |
| w | U+0077 | 77 | 0077 | Lowercase letter |
| i | U+0069 | 69 | 0069 | Lowercase letter |
| d | U+0064 | 64 | 0064 | Lowercase letter |
| t | U+0074 | 74 | 0074 | Lowercase letter |
| h | U+0068 | 68 | 0068 | Lowercase letter |
Caf\u00E9 \u0645\u0631\u062D\u0628\u0627 \u{1F44B}\u{1F3FD} na\u00EFve\u200Bzero\u2011widthCafé مرحبا 👋🏽 naïve​zero‑width
About this tool
How it works and how to read the result.
Need this done for you?
Arabic & multilingual websites
English and Arabic websites with proper right-to-left layouts.
See the serviceWhat it does
A Unicode character inspector shows what is really inside a piece of text, character by character. Paste anything, from an Arabic headline to a product name copied from a supplier's PDF, and every code point is listed with its U+ number, its UTF-8 bytes, its UTF-16 units and a category such as lowercase letter, Arabic letter, emoji, combining mark or zero-width space. Summary stats give the code point count, the number of visible characters, the UTF-8 byte length and how many invisible characters are hiding in the text.
How to use it
- Paste the text. The sample includes accents, Arabic, an emoji with a skin tone, a zero width space and a look-alike hyphen.
- Compare the stats. A gap between code points and visible characters means combining sequences or emoji modifiers are present.
- Scan the table for rows marked as zero width, no-break or direction marks, and delete those characters from your source.
- Copy the escaped JavaScript string or HTML entities if you need the text in code.
How to read the result
The sample text has 30 code points, 29 grapheme clusters and 47 UTF-8 bytes. The "é" in Café is one code point taking two bytes. The five Arabic letters take two bytes each and are marked as letters in the Arabic script, right-to-left. The waving hand with a skin tone is two code points, U+1F44B and U+1F3FD, four bytes each, that render as one emoji, which is why the grapheme count is lower.
The invisible count of 1 is U+200B, a zero width space between "naïve" and "zero". One more row is easy to miss: the hyphen is U+2011, a non-breaking hyphen, listed as punctuation. Both look normal in a text field, but a search for "zero-width" with an ordinary hyphen would not match this text.
The escaped output turns characters outside printable ASCII into backslash-u sequences for source code; the HTML entities line does the same for templates.
Mixed-script text is daily work in our Arabic and multilingual website projects. To check how the characters affect a URL, try the URL slug generator.
Questions
Frequently asked.
Why does my text contain characters I cannot see?
Copying from PDFs, Word, chat apps and some CMS editors brings along zero-width spaces, soft hyphens, no-break spaces and direction marks. They are invisible but they break search matching, URL slugs and string comparisons. The inspector counts them and names each one so you can delete them precisely.
Why is the character count different from the byte count?
Unicode characters take between one and four bytes in UTF-8. Plain English letters are one byte, Arabic and most accented letters are two, and emoji are four. JavaScript's length property counts UTF-16 units, so an emoji counts as two, which is why form validation sometimes disagrees with what users see.
What does the category tell me?
It is the Unicode general category, such as letter, digit, punctuation, symbol, space or format, with the script added for non-Latin text and a note when the script runs right to left. Format characters are the invisible ones. The link on each code point opens the official unicode.org page with the full name and properties.
Your next move
Like what you see? Tell us about it.
A process that takes too long, a website that undersells you, or an idea ready to take shape. Tell us where you are and we will suggest a useful next step.
India · Working with clients worldwide