Hidden character index
Every codepoint with a page of its own: what it is for, where it comes from, when it is doing a real job, and whether the default pass removes it.
48 characters documented
Grouped by the category the engine reports. Within a category, the option that removes a character is the same for every row.
Zero-width and invisible
Governed by Default pass (always on)
| Codepoint | Name | Default pass |
|---|---|---|
| U+200B | ZERO WIDTH SPACEA space with no width. It takes up a position in the string, marks a place where a line may break, and draws nothing at all. | Yes |
| U+2060 | WORD JOINERThe opposite of a zero width space: an invisible character that forbids a line break at its position, without adding any width. | Yes |
| U+00AD | SOFT HYPHENA conditional hyphen. It is invisible until the line breaks at that exact spot, at which point a hyphen appears. | Yes |
| U+FEFF | ZERO WIDTH NO-BREAK SPACEThe byte order mark. At the very start of a file it announces the encoding; anywhere else it is an invisible, non-breaking nothing that Unicode has deprecated for that use since 3.2. | Yes |
| U+2061 | FUNCTION APPLICATIONAn invisible mathematical operator meaning "apply this function to this argument" — the silent operator between f and (x). | Yes |
| U+2062 | INVISIBLE TIMESThe invisible multiplication sign — the operator that is meant when you write "2x" and mean "2 times x". | Yes |
| U+2063 | INVISIBLE SEPARATORThe invisible comma: the separator between the indices in a subscript like aij. | Yes |
| U+2064 | INVISIBLE PLUSThe invisible addition sign used between the parts of a mixed fraction — the "and" in "one and a half". | Yes |
| U+034F | COMBINING GRAPHEME JOINERA zero-width combining mark that exists to change how two characters sort and collate, not how they look. It never renders. | Yes |
| U+180E | MONGOLIAN VOWEL SEPARATORA Mongolian orthographic control that was reclassified in Unicode 6.3: it used to be a space, and is now a zero-width format character. | Yes |
| U+2800 | BRAILLE PATTERN BLANKThe braille cell with no dots raised. It is a printing character with a real advance width, but nothing is drawn. | Yes |
| U+3164 | HANGUL FILLERA Hangul compatibility character with no shape, used historically to fill an empty slot in a Korean syllable block. | Yes |
| U+FDD0–U+FDEF | NONCHARACTERSCodepoints Unicode has permanently reserved to never be characters: U+FDD0–U+FDEF plus the last two codepoints of every plane (U+FFFE, U+FFFF, U+1FFFE, and so on). | Yes |
Bidirectional overrides
Governed by Default pass (always on)
| Codepoint | Name | Default pass |
|---|---|---|
| U+202E | RIGHT-TO-LEFT OVERRIDEAn invisible control that forces every following character to be laid out right to left, regardless of what script it belongs to. | Yes |
| U+202D | LEFT-TO-RIGHT OVERRIDEThe mirror of U+202E: it forces everything after it to be laid out left to right, overriding the natural direction of Hebrew or Arabic. | Yes |
| U+202A | LEFT-TO-RIGHT EMBEDDINGOpens a left-to-right run inside surrounding text, until a matching POP DIRECTIONAL FORMATTING closes it. | Yes |
| U+202B | RIGHT-TO-LEFT EMBEDDINGOpens a right-to-left run inside surrounding text, until a matching POP DIRECTIONAL FORMATTING closes it. | Yes |
| U+202C | POP DIRECTIONAL FORMATTINGCloses the most recent embedding or override. On its own it does nothing; paired, it ends a directional run. | Yes |
Bidirectional marks
Governed by Bidi marks --bidi
| Codepoint | Name | Default pass |
|---|---|---|
| U+200E | LEFT-TO-RIGHT MARKAn invisible, zero-width character with strong left-to-right direction. It resolves ambiguity in mixed text without reordering anything itself. | When free-floating |
| U+200F | RIGHT-TO-LEFT MARKThe mirror of U+200E: an invisible character with strong right-to-left direction, used to resolve ambiguity in mixed-direction text. | When free-floating |
| U+061C | ARABIC LETTER MARKAn invisible mark with the direction of an Arabic letter, added in Unicode 6.3 for cases where a right-to-left mark is not quite strong enough. | When free-floating |
| U+2066–U+2069 | BIDIRECTIONAL ISOLATESFour invisible controls — LRI, RLI, FSI and PDI — that wrap a span of text so its direction cannot leak into the text around it. They are the modern replacement for the embedding and override controls. | When free-floating |
Joiners, selectors and fillers
Governed by Aggressive -a
| Codepoint | Name | Default pass |
|---|---|---|
| U+200D | ZERO WIDTH JOINERAn invisible character that asks two neighbours to be drawn as one. It is what turns three separate people into a family emoji and what joins Arabic and Indic letters that would otherwise stand apart. | When free-floating |
| U+200C | ZERO WIDTH NON-JOINERThe opposite of the joiner: an invisible character that forbids two neighbours from being drawn as one connected form. | When free-floating |
| U+FE00–U+FE0F | VARIATION SELECTORSSixteen invisible modifiers that pick which of several forms the preceding character should take. VS15 (U+FE0E) asks for the black-and-white text form; VS16 (U+FE0F) asks for the colour emoji form. | When free-floating |
| U+E0000–U+E007F | TAG CHARACTERSA shadow copy of ASCII. U+E0020–U+E007E mirror the printable ASCII characters, one for one, and render as nothing. U+E007F CANCEL TAG ends a sequence. | When free-floating |
| U+180B–U+180D | MONGOLIAN FREE VARIATION SELECTORSThree invisible selectors (FVS1–FVS3) that pick which positional form a Mongolian letter takes when the default shaping is not the one the word needs. | When free-floating |
| U+17B4–U+17B5 | KHMER INHERENT VOWELSTwo invisible Khmer vowel signs, AQ and AA, which spell out a vowel that is normally implied rather than written. | When free-floating |
| U+115F–U+1160 | HANGUL JAMO FILLERSTwo zero-width fillers that stand in for a missing initial consonant or medial vowel when a Korean syllable block is written out in jamo. | When free-floating |
Private-use characters
Governed by Private-use characters --pua
| Codepoint | Name | Default pass |
|---|---|---|
| U+E000–U+F8FF | PRIVATE USE AREACodepoints Unicode will never assign a meaning to, reserved for private agreements between a font and the software that uses it. U+E000–U+F8FF plus two large supplementary planes. | No |
Exotic spaces
Governed by Spaces -s
| Codepoint | Name | Default pass |
|---|---|---|
| U+00A0 | NO-BREAK SPACEA space that forbids a line break. It looks exactly like a normal space and is a completely different codepoint. | No |
| U+202F | NARROW NO-BREAK SPACEA thinner no-break space, about half the width of a normal one, used where a full space would look too wide. | No |
| U+205F | MEDIUM MATHEMATICAL SPACEA space four eighteenths of an em wide, defined for mathematical typesetting — the gap around a binary operator. | No |
| U+3000 | IDEOGRAPHIC SPACEA full-width space, exactly as wide as a CJK character. It is the space key on a Japanese, Chinese or Korean input method in full-width mode. | No |
| U+1680 | OGHAM SPACE MARKThe word separator of the Ogham script. Unusually for a space, it is drawn — as a short line — in most Ogham fonts, and as blank in everything else. | No |
| U+2000–U+200A | GENERAL PUNCTUATION SPACESEleven typographic spaces of fixed width: en quad, em quad, en space, em space, three-per-em, four-per-em, six-per-em, figure space, punctuation space, thin space and hair space. | No |
Line separators
Governed by Line endings -n
| Codepoint | Name | Default pass |
|---|---|---|
| U+2028 | LINE SEPARATORUnicode’s own "new line here" character, distinct from the ASCII line feed. It ends a line without ending a paragraph. | No |
| U+2029 | PARAGRAPH SEPARATORUnicode’s paragraph break — the counterpart of U+2028, one level up. | No |
| U+0085 | NEXT LINENEL, a C1 control that means "start a new line". It comes from EBCDIC, where it was the newline character. | No |
Control characters
Governed by Control characters --controls
| Codepoint | Name | Default pass |
|---|---|---|
| U+0000–U+001F | C0 CONTROL CHARACTERSThe 32 ASCII control codes — NUL, BEL, ESC, the file and record separators, and the rest. They are commands to a teletype, not text. | No |
| U+0080–U+009F | C1 CONTROL CHARACTERSA second block of 32 control codes inherited from ISO 8859. In Unicode they are controls; in Windows-1252 the same byte values are curly quotes, the em dash and the euro sign. | No |
Typographic punctuation
Governed by Punctuation --punct
| Codepoint | Name | Default pass |
|---|---|---|
| U+2014 | EM DASHThe long dash, one em wide, used to set off a parenthetical clause — like this one — or to mark an interruption. | No |
| U+2019 | RIGHT SINGLE QUOTATION MARKThe curly closing single quote — and, in English, the correct apostrophe: don’t, it’s, ’90s. | No |
| U+2026 | HORIZONTAL ELLIPSISThree dots in a single character, with tighter spacing than three periods and no chance of a line break inside it. | No |
Lookalike letters
Governed by Lookalike letters --confusables
| Codepoint | Name | Default pass |
|---|---|---|
| U+0430 | CYRILLIC SMALL LETTER AThe Cyrillic letter a. In almost every font it is drawn identically to the Latin letter a, and it is a completely different codepoint. | No |
| U+043E | CYRILLIC SMALL LETTER OThe Cyrillic letter o, drawn identically to Latin o in every font in common use. | No |
| U+0435 | CYRILLIC SMALL LETTER IEThe Cyrillic letter ie, drawn exactly like a Latin e. | No |
| U+0441 | CYRILLIC SMALL LETTER ESThe Cyrillic letter es, drawn exactly like a Latin c. | No |