| Char | Code point | Dec | UTF-8 | HTML | JS escape | Note |
|---|
No characters to show.
Everything runs in your browser — nothing is uploaded. Invisible and control characters are flagged so you can spot hidden ones.
When you need to look up the Unicode value of a character, or check whether some pasted text contains stray invisible characters, paste it here and inspect it one character at a time. For each character the table shows the code point (`U+XXXX`), the decimal value, the UTF-8 byte sequence (hex), the HTML numeric entity (`&#xXXXX;`) and the JavaScript escape (`\uXXXX` / `\u{XXXXX}`). Emoji and other surrogate-pair characters are split by **code point**, not by UTF-16 unit, so they're counted correctly. What sets this apart is finding the characters you can't see: **zero-width spaces (ZWSP), the BOM, non-breaking spaces (NBSP), directional formatting marks and C0/C1 control characters**. These rows are highlighted and labelled by name, so you can track down the hidden character behind a bug — strings that won't compare equal, layouts that break, text that won't match a search. You can filter the view to All, Non-ASCII, or Invisible only to pull just the problem characters out of a long passage. The "Copy JS escapes" button converts the whole input to a `\u`-escaped string in one click — handy for safely embedding non-ASCII text in source code. Your input is never uploaded, stored, or sent anywhere. Everything happens inside your browser, so you can paste sensitive text without worry.
How to use
- Type or paste text into the box; each character is listed with its code point (U+), decimal, UTF-8 bytes, HTML entity and JS escape.
- Invisible characters such as zero-width spaces and control codes are highlighted and named in the Note column. Use "Invisible only" to filter.
- Hit "Copy JS escapes" to copy the whole input as a `\u`-escaped string. Your input is never sent anywhere.
FAQ
Is my text uploaded anywhere?
No. The analysis runs entirely in your browser (JavaScript). Your text is never uploaded, stored, or sent to a server, so you can safely inspect sensitive content.
Can it find invisible characters like zero-width spaces?
Yes. It detects zero-width spaces (ZWSP), the BOM, non-breaking spaces (NBSP), soft hyphens, directional formatting marks (RTL/LTR) and C0/C1 control characters, highlighting each row and showing its name. Switch to "Invisible only" to extract just those characters from a long passage.
Does it handle emoji and combining characters correctly?
It splits text by code point, so surrogate-pair characters (most emoji) are shown as a single code point with their U+ value. Note that modifiers (like skin tones) and combined emoji appear as a sequence of separate code points, one per row.
What's the difference between a code point and UTF-8?
A code point (U+XXXX) is the number assigned to a character itself, while UTF-8 is the actual byte encoding used to store it. For example, 'あ' is U+3042 and encodes to the three UTF-8 bytes E3 81 82. This tool shows both side by side.
How do I use the copied JS escapes?
"Copy JS escapes" converts the whole input to a `\uXXXX` string (using `\u{XXXXX}` for characters above the BMP). Paste it straight into source code or JSON when you want to embed non-ASCII characters safely.