Unicode Sequence Analyzer
Break text into grapheme clusters and code points, then inspect scripts, categories, bytes, normalization and bidirectional properties.
The exact original text is analyzed: nothing is trimmed, normalized, reordered or removed before analysis.
Mixed-script text is a review signal, not proof of malicious intent. For dedicated mixed-script analysis, use the Mixed Script Detector.
Grapheme clusters and code points
Every grapheme cluster in the input, using Intl.Segmenter where the browser supports it. Combining marks are shown with a dotted circle so they remain visible on their own; invisible and formatting code points use a bracketed label.
| Position | Grapheme | Code points | UTF-16 units | UTF-8 bytes | Scripts | Notes |
|---|
Code point breakdown
Every code point, in order, with its Unicode name, category, script, bidi class and encodings. Block, plane, canonical combining class, the mirrored property and the UTF-16 representation are included using this tool's bundled Unicode Character Database.
| Position | Character | Code point | Unicode name | Category | Script | Bidi class | UTF-8 bytes | Block | Plane | Combining class | Mirrored | UTF-16 |
|---|
Script runs
Contiguous runs of code points sharing the same raw Unicode Script value. Raw values are always shown; scripts are not merged or reinterpreted here. See resolved script context below for an optional, clearly separate heuristic view.
| Run | Text | Start | End | Script | Code points |
|---|
Directionality runs
Bidi property analysis, not exact rendered order: this groups code points by bidirectional class into left-to-right, right-to-left, Arabic right-to-left, number, isolate and neutral runs. It does not implement the full Unicode Bidirectional Algorithm and is not a substitute for how a browser actually lays out bidirectional text.
| Run | Text | Direction | Bidi classes | Notes |
|---|
Unicode normalization status
NFC and NFD are canonical normalization forms; NFKC and NFKD additionally apply compatibility mappings, which can remove representational distinctions between characters. These forms are computed from the input for comparison only; the analyzer never mutates your original text.
| Form | Already in form | Code points | Graphemes | UTF-8 bytes | Preview |
|---|
Analyze Unicode sequences online
Break text into grapheme clusters and Unicode code points, then inspect encodings, scripts, categories, normalization status, directionality and invisible characters without changing the input.
Unicode sequence analysis example
The default example Hello, café 😀 contains 13 grapheme clusters, 13 Unicode code points, 14 UTF-16 code units and 17 UTF-8 bytes. It detects the Latin and Common scripts, has no combining marks and no bidi controls, and is already in NFC. The final emoji alone is 1 grapheme cluster, 1 code point, 2 UTF-16 code units, 4 UTF-8 bytes and script Common.
Grapheme clusters and code points
A grapheme cluster is the user-perceived character people think of as "one letter," while a code point is a single Unicode scalar value; UTF-16 code units are the JavaScript-style string units used to measure string.length. One grapheme cluster can contain several code points, such as a decomposed accented letter, a combining sequence or an emoji built from a base character plus joiners, modifiers or variation selectors. See Code Points vs Code Units and What Is a Grapheme Cluster?.
Scripts and mixed-script text
The Unicode Script property classifies each code point by writing system, such as Latin, Cyrillic, Greek, Arabic, Hebrew or Han. Punctuation, digits, spaces and most emoji are typically Common, and many combining marks are Inherited because they take their script context from the preceding base character. Raw script values and script runs are always shown; an optional resolved view can associate a Common or Inherited run with the substantive script on both sides when they match, documented as a derived heuristic rather than a raw property. Mixed-script text is reported as a diagnostic observation, not as evidence of malicious intent; see the Mixed Script Detector for a tool dedicated to this analysis.
Bidirectional properties and directionality
Every code point has a bidirectional class, such as left-to-right (L), right-to-left (R), Arabic letters (AL), numbers (EN/AN), neutral punctuation (WS/ON) and directional isolates or controls. Directionality runs group consecutive code points that share a direction. This is bidi-property analysis, not exact rendered order: the analyzer does not implement the full Unicode Bidirectional Algorithm, so it cannot reproduce every detail of how a browser visually lays out mixed-direction text.
Unicode normalization status
NFC and NFD are canonical normalization forms that reorganize combining sequences without changing meaning. NFKC and NFKD additionally apply compatibility mappings, which can replace characters like ligatures, circled digits or full-width forms with plainer equivalents, potentially removing distinctions that mattered in the original text. Normalizing can change code-point and byte counts even when the visual text looks the same. This analyzer computes all four forms for comparison only and never modifies your input.
Emoji, joiners and combining sequences
Combining marks attach to the base character before them; precomposed characters (like é) and their decomposed equivalents (a letter followed by a combining mark) can look identical but have different code points. Emoji sequences use zero-width joiners (ZWJ) to combine multiple emoji into one glyph, regional-indicator pairs to form flags, skin-tone modifiers, and variation selectors to request emoji or text presentation. This tool reports these as structural indicators (contains ZWJ, regional indicators, an emoji modifier, a variation selector, a keycap or tag sequence) rather than a complete emoji-sequence classification.
Invisible and control characters
Zero-width spaces, word joiners, ZWNJ, ZWJ, soft hyphens, variation selectors, bidi controls, non-breaking and other special Unicode spaces, combining marks, private-use characters and unassigned code points are all counted in separate categories rather than one combined "invisible" total, and each is shown with a safe bracketed label rather than rendered raw or left as an empty cell. Invisible does not mean meaningless: joiners, bidi controls and variation selectors change how text behaves or renders even though they have no visible glyph of their own. See the Invisible Character Detector for a tool focused specifically on this.
Sequence Analyzer vs Character Inspector
The Unicode Sequence Analyzer examines complete strings: grapheme segmentation, script runs, directionality runs, combining sequences, emoji sequences, mixed-script analysis and sequence-level normalization status. The Unicode Character Inspector is best for one character at a time, showing detailed individual character properties and exact encoding forms for character-level lookup. Use the Sequence Analyzer for whole strings and the Character Inspector when you need to inspect a single character closely.
How to use the analyzer
- Paste or type Unicode text into the input field.
- Run the analyzer or review live summary results.
- Inspect grapheme clusters and constituent code points.
- Review script runs, bidi properties and normalization status.
- Check joiners, controls, variation selectors and other special characters.
- Copy or download the analysis report.
Common use cases
- Inspect emoji and combining-character sequences.
- Debug strings with unexpected code-point counts.
- Analyze scripts in multilingual text.
- Find mixed Latin, Cyrillic or Greek characters.
- Review bidirectional properties and controls.
- Check whether text is NFC or NFD.
- Inspect invisible Unicode characters.
- Create Unicode test fixtures for applications and APIs.
Privacy and local processing
Analysis runs with JavaScript directly in your browser. Your text is not submitted to UnicodeNow servers.
Frequently asked questions
What is a Unicode sequence?
A Unicode sequence is a run of code points that together form text, from a single grapheme cluster to a full string. This analyzer examines the relationships between the code points in your input, not just one character at a time.
What is the difference between a grapheme cluster and a code point?
A grapheme cluster is a user-perceived character, such as an accented letter or an emoji, which can be made of one or more Unicode code points. A code point is a single Unicode scalar value. One grapheme cluster can contain several code points.
Why can one emoji contain several code points?
Many emoji are sequences: a base emoji plus a variation selector, skin-tone modifier or zero-width joiners linking several emoji into one glyph, such as family and profession emoji. Flags are pairs of regional-indicator code points.
What does the Script property mean?
Script is a Unicode property that classifies a code point by writing system, such as Latin, Cyrillic, Greek, Arabic, Hebrew or Han. It describes writing systems, not languages.
What are Common and Inherited scripts?
Common is used by code points shared across scripts, such as digits, punctuation, spaces and most emoji. Inherited is used mainly by combining marks, which take their script context from the base character before them.
What is a bidi class?
A bidirectional (bidi) class is a Unicode property that classifies how a code point participates in directional text, such as left-to-right (L), right-to-left (R), Arabic letters (AL), numbers (EN/AN), neutral punctuation (ON/WS) and directional controls or isolates.
Does the analyzer apply the full Unicode Bidirectional Algorithm?
No. It reports bidi-class property analysis and groups code points into directionality runs based on those classes. It does not implement the full Unicode Bidirectional Algorithm and does not reproduce exact visual rendering order.
How can I tell whether text is NFC or NFD?
The normalization section computes NFC, NFD, NFKC and NFKD forms from your input and reports whether each form already matches it, without changing your original text.
Are invisible characters included?
Yes. Zero-width spaces, joiners, bidi controls, variation selectors, soft hyphens, special spaces and control characters are counted separately and shown with safe visible labels rather than rendered as invisible or empty cells.
Does the analyzer change my text?
No. The exact original input is analyzed and displayed unchanged. Normalized forms and other derived values are computed separately for comparison only.
Is my text sent to a server?
No. Analysis runs with JavaScript directly in your browser. Your input is not submitted to UnicodeNow servers.
Related tools
For detailed properties of one character, use the Unicode Character Inspector. To compare two complete strings, use Unicode Text Compare. To look up a character by name, code point, block or script, use the Unicode Character Lookup.
Unicode Character Inspector
Inspect each Unicode character, encoding, category, script and normalization form.
Unicode Character Lookup
Search Unicode characters by glyph, code point, name, script or block.
Unicode Character Counter
Count code points, grapheme clusters, words, bytes and invisible characters.
Unicode Text Compare
Compare strings exactly and after Unicode normalization.
Invisible Character Detector
Find zero-width, control, variation, private-use and spacing characters.
Mixed Script Detector
Detect Unicode writing systems and mixed substantive-script patterns.
Unicode Normalizer
Normalize Unicode text to NFC, NFD, NFKC or NFKD.
Related guides
Code Points vs Code Units
Understand Unicode code points, UTF-8 bytes, UTF-16 code units, surrogate pairs, grapheme clusters and why string length can mislead.
What Is a Grapheme Cluster?
Learn how grapheme clusters represent user-perceived characters, why emoji and combining marks affect length, and how to handle text safely.
How to Count Unicode Characters Correctly
Choose the right Unicode length unit for UI limits, storage limits, APIs, JavaScript, Python and PHP.