Code point and name
See a stable hexadecimal identifier such as U+200B, its decimal value, and the Unicode name. When Unicode defines a control alias, the alias is shown separately so the source of the label stays clear.
Inspect text one code point at a time
See the Unicode code point, official name, category, block, and UTF-8 size behind every character in your text—including marks that are easy to miss.
Browser-based Unicode inspection
Inspect the characters exactly as pasted. Your text stays in this browser tab and is never sent to this site.
Up to 2,000 code points per inspection. The displayed source is not edited.
0 / 2,000 code pointsRead the exact text, not a guess
A rendered glyph can hide the details that matter to a validator, a programmer, a translator, or an editor. The inspector turns each distinct code point into a small, verifiable record.
See a stable hexadecimal identifier such as U+200B, its decimal value, and the Unicode name. When Unicode defines a control alias, the alias is shown separately so the source of the label stays clear.
General category identifies broad behavior such as uppercase letter, nonspacing mark, format control, or space separator. The block places the code point in a named range in the Unicode chart.
Compare UTF-8 bytes with UTF-16 code units, count repeated code points, and see their text positions. These measurements are useful when debugging storage limits, parsers, and copied strings.
Unicode names and categories describe encoded text. They do not tell you whether a character is harmful, whether a document is trustworthy, or how every font or application will render it.
A precise way to inspect text
Run an inspection before changing a string. This makes it easier to find a value that breaks a search, comparison, import, or display step while keeping the source available for review.
Copy the string from the app, file, or field where the issue occurs. The checker preserves spaces and line breaks for inspection and accepts up to 2,000 code points at a time.
Select the button to see a row for each unique code point. A row includes its code point position, count, UTF-8 bytes, Unicode category, block, and name or alias where available.
Use the readable labels to spot a non-breaking space, zero-width mark, combining mark, or directional control. Copy the report when you need to share technical findings; the checker never rewrites your input.
Three measures with different jobs
“Character count” can refer to several different things. Knowing which measure a tool reports prevents off-by-one errors and avoids confusing storage units with what a reader sees.
| Measure | What it counts | Example |
|---|---|---|
| Code point | A Unicode value in the text sequence. This checker uses code point positions and groups repeated values together. | Most emoji are one or more code points. |
| UTF-16 code unit | A 16-bit unit used by JavaScript strings. A supplementary code point uses a surrogate pair and therefore two units. | Many emoji use 2 UTF-16 units. |
| Grapheme cluster | A sequence that a user may perceive as one written symbol. It can contain a base character and combining or joining code points. | A family emoji may be several code points joined as one displayed grapheme. |
For example, the visible thumbs-up emoji with a skin-tone modifier contains two code points. A flag is often encoded as two regional indicator code points. A letter plus a combining accent can look like one letter while remaining a sequence of two code points. This checker shows those underlying values separately; it does not claim to count what a person perceives as one symbol.
UTF-8 length answers a different question: how many bytes a browser's UTF-8 encoder produces for the submitted string. That value can differ from the number of JavaScript UTF-16 units. If a JavaScript string contains an isolated surrogate, UTF-8 encoding replaces it with the replacement character; treat that byte count as the browser encoder's output rather than a valid Unicode scalar encoding.
Invisible does not mean absent
Some code points change text without drawing a standalone mark. A zero-width joiner can affect how adjacent emoji or scripts combine. Directional controls can influence ordering. A non-breaking space can look like an ordinary space while changing where a line wraps.
Rendering those values directly in a result cell can reproduce the confusion—or allow directional formatting to rearrange nearby labels. For that reason, the checker displays a bracketed description for control, format, separator, combining, and other non-visible characters. The exact U+ value and official name remain available beside the label.
A visible preview is only a convenience. The category, code point, and name are the dependable identifiers. Font coverage, platform shaping, and surrounding text can make visible characters appear different across browsers.
Reference data and limits
The checker uses a versioned Unicode Character Database snapshot and keeps the submitted text local to the page.
Names, aliases, general categories, and block ranges are derived from Unicode Character Database 18.0.0. Character records are loaded from this site's static data file only when you start an inspection. The input text itself is processed by JavaScript in your browser and is not included in the data request. The checker does not send the text to an API or save it in an account.
Unicode evolves as new characters are encoded. This page identifies the dataset version so that results can be reproduced and reviewed against the same release. Some code points do not have an assigned character name, including reserved values and private-use characters. In those cases, the result says that no name is assigned instead of inventing one. Where Unicode defines an alias for a control, it is called out as an alias.
The checker is designed to inspect ordinary text strings, not to validate every property in the Unicode Standard. It does not identify a character's visual meaning in every script, determine whether a string is safe, detect all homoglyphs, parse language-specific grapheme boundaries, or infer how a particular app stores text. Use the code point and versioned reference information as evidence, then verify application-specific behavior where it matters.
For a focused scan and optional cleanup of common invisible marks, use the hidden character detector. To identify one pasted symbol by its name and code point, open What Is This Symbol?. To check only ZERO WIDTH SPACE (U+200B), open the zero width space detector. For background on why a character may be present, see what a hidden character is and how to remove invisible characters from text.
Reference: Unicode Character Database 18.0.0, the Unicode Character Database specification (UAX #44), and the Unicode 18.0.0 release summary. Unicode data is redistributed under the Unicode License v3.
Common Unicode inspection questions
Paste up to 2,000 code points into the checker and select Inspect characters. The result lists each distinct code point with its Unicode name, category, block, UTF-8 byte length, frequency, and positions.
Paste the character or a longer text sample and inspect it. The results show the Unicode name or a defined alias for each distinct code point. A visible emoji sequence can contain several code points, so the checker lists its parts separately.
Unicode assigns code points to characters and other encoded values so text can be represented consistently across systems. A code point is the numbered value, such as U+0041 for LATIN CAPITAL LETTER A; one visible grapheme can contain several code points.
Yes. It shows spaces, format controls, combining marks, line separators, and other non-visible characters as readable labels instead of rendering hidden direction-changing or zero-width characters directly.
This Unicode detector reports the code points in the text you provide, including visible letters and symbols. The site's hidden character detector focuses on a selected set of common invisible marks and can create a separate cleaned copy.
It shows the Unicode value and properties of every code point, including punctuation, marks, and less common symbols. Whether a value is invalid depends on the rules of your programming language, file format, database, or application.
No. The input is processed in your browser and is not sent to this website. Inspection creates a report only; it does not replace, normalize, or clean the text you entered.
A visible emoji may be one code point or a sequence containing a base emoji, variation selector, skin-tone modifier, regional indicators, or zero-width joiner. This checker reports the underlying code points, not the number of visible emoji graphemes.
U+200B is the hexadecimal notation for code point 8203, named ZERO WIDTH SPACE. The U+ prefix and hexadecimal value identify a character independently of how a font renders it.
Character data comes from Unicode Character Database 18.0.0. The page shows that version beside the checker so a result can be understood in the context of the data used.
The Unicode 18.0.0 release summary currently lists 13,007 added characters and 172,808 characters in its repertoire; that summary is marked preliminary and may change. Unicode defines 1,114,112 possible code points, but many are unassigned. The count depends on the version, so check the release summary for updates.