Unicode Sequence Analyzer

Break text into grapheme clusters and code points, then inspect scripts, categories, bytes, normalization and bidirectional properties.

Processed locally in your browser

The exact original text is analyzed: nothing is trimmed, normalized, reordered or removed before analysis.

0Grapheme clusters
0Unicode code points
0UTF-16 code units
0UTF-8 bytes
0Scripts detected
0Script runs

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.

Grapheme cluster breakdown
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.

Code point breakdown
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.

Script runs (raw Script property)
Run Text Start End Script Code points
Resolved script context (heuristic)

Where a Common or Inherited run sits between two runs of the same substantive script, this optional view associates it with that surrounding script. This is a derived heuristic for readability, not a raw Unicode Script value, and it never overwrites the raw script runs above.

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.

Directionality runs
Run Text Direction Bidi classes Notes
Bidi class definitions
L
Left-to-Right
R
Right-to-Left
AL
Right-to-Left Arabic letter
EN
European Number
AN
Arabic Number
NSM
Nonspacing Mark (takes the direction of the preceding character)
WS
Whitespace (neutral)
ON
Other Neutral (most punctuation and symbols)
BN
Boundary Neutral (most controls and formatting characters)
LRI / RLI / FSI
Left-to-Right / Right-to-Left / First Strong Isolate
PDI
Pop Directional Isolate

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.

Normalization status
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

  1. Paste or type Unicode text into the input field.
  2. Run the analyzer or review live summary results.
  3. Inspect grapheme clusters and constituent code points.
  4. Review script runs, bidi properties and normalization status.
  5. Check joiners, controls, variation selectors and other special characters.
  6. 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.

UnicodeProcessed locally

Unicode Character Lookup

Search Unicode characters by glyph, code point, name, script or block.

UnicodeServer tool

Unicode Character Counter

Count code points, grapheme clusters, words, bytes and invisible characters.

Text ComparisonProcessed locally

Unicode Text Compare

Compare strings exactly and after Unicode normalization.

Text ComparisonProcessed locally

Mixed Script Detector

Detect Unicode writing systems and mixed substantive-script patterns.

SecurityProcessed locally

Unicode Normalizer

Normalize Unicode text to NFC, NFD, NFKC or NFKD.

NormalizationProcessed locally

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.