# Devanagari character tables # This document lists the per-character shaping information needed to [shape Devanagari text](../opentype-shaping-devanagari.md). **Contents** - [Devanagari character table](#devanagari-character-table) - [Devanagari Extended character table](#devanagari-extended-character-table) - [Vedic Extensions character table](#vedic-extensions-character-table) - [Miscellaneous character table](#miscellaneous-character-table) ## Devanagari character table ## Devanagari glyphs should be classified as in the following table. Codepoints in the Devanagari block with no assigned meaning are designated as _unassigned_ in the _Unicode category_ column. Assigned codepoints with a _null_ in the _Shaping class_ column evoke no special behavior from the shaping engine. Note that this does include some valid codepoints, such as currency marks, punctuation, and other symbols. > Note: the `NUMBER` and `SYMBOL` _Shaping classes_ are important > during syllable identification, but generally evoke no further > special behavior during the rest of the shaping process. The _Mark-placement subclass_ column indicates mark-placement positioning for codepoints in the _Mark_ category. Assigned, non-mark codepoints have a _null_ in this column and evoke no special mark-placement behavior. Marks tagged with [Mn] in the _Unicode category_ column are categorized as non-spacing; marks tagged with [Mc] are categorized as spacing-combining. Some codepoints in the following table use a _Shaping class_ that differs from the codepoint's Unicode _General Category_. The _Shaping class_ takes precedence during OpenType shaping, as it captures more specific, script-aware behavior. :::{table} Devanagari character table | Codepoint | Unicode category | Shaping class | Mark-placement subclass | Glyph | |:----------|:-----------------|:------------------|:---------------------------|:-----------------------------| |`U+0900` | Mark [Mn] | BINDU | TOP_POSITION | ऀ Inverted Candrabindu| |`U+0901` | Mark [Mn] | BINDU | TOP_POSITION | ँ Candrabindu | |`U+0902` | Mark [Mn] | BINDU | TOP_POSITION | ं Anusvara | |`U+0903` | Mark [Mc] | VISARGA | RIGHT_POSITION | ः Visarga | |`U+0904` | Letter | VOWEL_INDEPENDENT | _null_ | ऄ Short A | |`U+0905` | Letter | VOWEL_INDEPENDENT | _null_ | अ A | |`U+0906` | Letter | VOWEL_INDEPENDENT | _null_ | आ Aa | |`U+0907` | Letter | VOWEL_INDEPENDENT | _null_ | इ I | |`U+0908` | Letter | VOWEL_INDEPENDENT | _null_ | ई Ii | |`U+0909` | Letter | VOWEL_INDEPENDENT | _null_ | उ U | |`U+090A` | Letter | VOWEL_INDEPENDENT | _null_ | ऊ Uu | |`U+090B` | Letter | VOWEL_INDEPENDENT | _null_ | ऋ Vocalic R | |`U+090C` | Letter | VOWEL_INDEPENDENT | _null_ | ऌ Vocalic L | |`U+090D` | Letter | VOWEL_INDEPENDENT | _null_ | ऍ Candra E | |`U+090E` | Letter | VOWEL_INDEPENDENT | _null_ | ऎ Short E | |`U+090F` | Letter | VOWEL_INDEPENDENT | _null_ | ए E | | | | | | |`U+0910` | Letter | VOWEL_INDEPENDENT | _null_ | ऐ Ai | |`U+0911` | Letter | VOWEL_INDEPENDENT | _null_ | ऑ Candra O | |`U+0912` | Letter | VOWEL_INDEPENDENT | _null_ | ऒ Short O | |`U+0913` | Letter | VOWEL_INDEPENDENT | _null_ | ओ O | |`U+0914` | Letter | VOWEL_INDEPENDENT | _null_ | औ Au | |`U+0915` | Letter | CONSONANT | _null_ | क Ka | |`U+0916` | Letter | CONSONANT | _null_ | ख Kha | |`U+0917` | Letter | CONSONANT | _null_ | ग Ga | |`U+0918` | Letter | CONSONANT | _null_ | घ Gha | |`U+0919` | Letter | CONSONANT | _null_ | ङ Nga | |`U+091A` | Letter | CONSONANT | _null_ | च Ca | |`U+091B` | Letter | CONSONANT | _null_ | छ Cha | |`U+091C` | Letter | CONSONANT | _null_ | ज Ja | |`U+091D` | Letter | CONSONANT | _null_ | झ Jha | |`U+091E` | Letter | CONSONANT | _null_ | ञ Nya | |`U+091F` | Letter | CONSONANT | _null_ | ट Tta | | | | | | |`U+0920` | Letter | CONSONANT | _null_ | ठ Ttha | |`U+0921` | Letter | CONSONANT | _null_ | ड Dda | |`U+0922` | Letter | CONSONANT | _null_ | ढ Ddha | |`U+0923` | Letter | CONSONANT | _null_ | ण Nna | |`U+0924` | Letter | CONSONANT | _null_ | त Ta | |`U+0925` | Letter | CONSONANT | _null_ | थ Tha | |`U+0926` | Letter | CONSONANT | _null_ | द Da | |`U+0927` | Letter | CONSONANT | _null_ | ध Dha | |`U+0928` | Letter | CONSONANT | _null_ | न Na | |`U+0929` | Letter | CONSONANT | _null_ | ऩ Nnna | |`U+092A` | Letter | CONSONANT | _null_ | प Pa | |`U+092B` | Letter | CONSONANT | _null_ | फ Pha | |`U+092C` | Letter | CONSONANT | _null_ | ब Ba | |`U+092D` | Letter | CONSONANT | _null_ | भ Bha | |`U+092E` | Letter | CONSONANT | _null_ | म Ma | |`U+092F` | Letter | CONSONANT | _null_ | य Ya | | | | | | |`U+0930` | Letter | CONSONANT | _null_ | र Ra | |`U+0931` | Letter | CONSONANT | _null_ | ऱ Rra | |`U+0932` | Letter | CONSONANT | _null_ | ल La | |`U+0933` | Letter | CONSONANT | _null_ | ळ Lla | |`U+0934` | Letter | CONSONANT | _null_ | ऴ Llla | |`U+0935` | Letter | CONSONANT | _null_ | व Va | |`U+0936` | Letter | CONSONANT | _null_ | श Sha | |`U+0937` | Letter | CONSONANT | _null_ | ष Ssa | |`U+0938` | Letter | CONSONANT | _null_ | स Sa | |`U+0939` | Letter | CONSONANT | _null_ | ह Ha | |`U+093A` | Mark [Mn] | VOWEL_DEPENDENT | TOP_POSITION | ऺ Sign Oe | |`U+093B` | Mark [Mc] | VOWEL_DEPENDENT | RIGHT_POSITION | ऻ Sign Ooe | |`U+093C` | Mark [Mn] | NUKTA | BOTTOM_POSITION | ़ Nukta | |`U+093D` | Letter | AVAGRAHA | _null_ | ऽ Avagraha | |`U+093E` | Mark [Mc] | VOWEL_DEPENDENT | RIGHT_POSITION | ा Sign Aa | |`U+093F` | Mark [Mc] | VOWEL_DEPENDENT | LEFT_POSITION | ि Sign I | | | | | | |`U+0940` | Mark [Mc] | VOWEL_DEPENDENT | RIGHT_POSITION | ी Sign Ii | |`U+0941` | Mark [Mn] | VOWEL_DEPENDENT | BOTTOM_POSITION | ु Sign U | |`U+0942` | Mark [Mn] | VOWEL_DEPENDENT | BOTTOM_POSITION | ू Sign Uu | |`U+0943` | Mark [Mn] | VOWEL_DEPENDENT | BOTTOM_POSITION | ृ Sign Vocalic R | |`U+0944` | Mark [Mn] | VOWEL_DEPENDENT | BOTTOM_POSITION | ॄ Sign Vocalic Rr | |`U+0945` | Mark [Mn] | VOWEL_DEPENDENT | TOP_POSITION | ॅ Sign Candra E | |`U+0946` | Mark [Mn] | VOWEL_DEPENDENT | TOP_POSITION | ॆ Sign Short E | |`U+0947` | Mark [Mn] | VOWEL_DEPENDENT | TOP_POSITION | े Sign E | |`U+0948` | Mark [Mn] | VOWEL_DEPENDENT | TOP_POSITION | ै Sign Ai | |`U+0949` | Mark [Mc] | VOWEL_DEPENDENT | RIGHT_POSITION | ॉ Sign Candra O | |`U+094A` | Mark [Mc] | VOWEL_DEPENDENT | RIGHT_POSITION | ॊ Sign Short O | |`U+094B` | Mark [Mc] | VOWEL_DEPENDENT | RIGHT_POSITION | ो Sign O | |`U+094C` | Mark [Mc] | VOWEL_DEPENDENT | RIGHT_POSITION | ौ Sign Au | |`U+094D` | Mark [Mn] | VIRAMA | BOTTOM_POSITION | ् Virama | |`U+094E` | Mark [Mc] | VOWEL_DEPENDENT | LEFT_POSITION | ॎ Sign Prishthamatra E| |`U+094F` | Mark [Mc] | VOWEL_DEPENDENT | RIGHT_POSITION | ॏ Sign Aw | | | | | | |`U+0950` | Mark [Mc] | _null_ | _null_ | ॐ Om | |`U+0951` | Mark [Mn] | CANTILLATION | TOP_POSITION | ॑ Udatta | |`U+0952` | Mark [Mn] | CANTILLATION | BOTTOM_POSITION | ॒ Anudatta | |`U+0953` | Mark [Mn] | SYLLABLE_MODIFIER | TOP_POSITION | ॓ Grave accent | |`U+0954` | Mark [Mn] | SYLLABLE_MODIFIER | TOP_POSITION | ॔ Acute accent | |`U+0955` | Mark [Mn] | VOWEL_DEPENDENT | TOP_POSITION | ॕ Sign Candra Long E | |`U+0956` | Mark [Mn] | VOWEL_DEPENDENT | BOTTOM_POSITION | ॖ Sign Ue | |`U+0957` | Mark [Mn] | VOWEL_DEPENDENT | BOTTOM_POSITION | ॗ Sign Uue | |`U+0958` | Letter | CONSONANT | _null_ | क़ Qa | |`U+0959` | Letter | CONSONANT | _null_ | ख़ Khha | |`U+095A` | Letter | CONSONANT | _null_ | ग़ Ghha | |`U+095B` | Letter | CONSONANT | _null_ | ज़ Za | |`U+095C` | Letter | CONSONANT | _null_ | ड़ Dddha | |`U+095D` | Letter | CONSONANT | _null_ | ढ़ Rha | |`U+095E` | Letter | CONSONANT | _null_ | फ़ Fa | |`U+095F` | Letter | CONSONANT | _null_ | य़ Yya | | | | | | |`U+0960` | Letter | VOWEL_INDEPENDENT | _null_ | ॠ Vocalic Rr | |`U+0961` | Letter | VOWEL_INDEPENDENT | _null_ | ॡ Vocalic Ll | |`U+0962` | Mark [Mn] | VOWEL_DEPENDENT | BOTTOM_POSITION | ॢ Sign Vocalic L | |`U+0963` | Mark [Mn] | VOWEL_DEPENDENT | BOTTOM_POSITION | ॣ Sign Vocalic Ll | |`U+0964` | Punctuation | _null_ | _null_ | । Danda | |`U+0965` | Punctuation | _null_ | _null_ | ॥ Double Danda | |`U+0966` | Number | NUMBER | _null_ | ० Digit Zero | |`U+0967` | Number | NUMBER | _null_ | १ Digit One | |`U+0968` | Number | NUMBER | _null_ | २ Digit Two | |`U+0969` | Number | NUMBER | _null_ | ३ Digit Three | |`U+096A` | Number | NUMBER | _null_ | ४ Digit Four | |`U+096B` | Number | NUMBER | _null_ | ५ Digit Five | |`U+096C` | Number | NUMBER | _null_ | ६ Digit Six | |`U+096D` | Number | NUMBER | _null_ | ७ Digit Seven | |`U+096E` | Number | NUMBER | _null_ | ८ Digit Eight | |`U+096F` | Number | NUMBER | _null_ | ९ Digit Nine | | | | | | |`U+0970` | Punctuation | _null_ | _null_ | ॰ Abbreviation Sign | |`U+0971` | Punctuation | _null_ | _null_ | ॱ Sign High Spacing Dot| |`U+0972` | Letter | VOWEL_INDEPENDENT | _null_ | ॲ Candra Aa | |`U+0973` | Letter | VOWEL_INDEPENDENT | _null_ | ॳ Oe | |`U+0974` | Letter | VOWEL_INDEPENDENT | _null_ | ॴ Ooe | |`U+0975` | Letter | VOWEL_INDEPENDENT | _null_ | ॵ Aw | |`U+0976` | Letter | VOWEL_INDEPENDENT | _null_ | ॶ Ue | |`U+0977` | Letter | VOWEL_INDEPENDENT | _null_ | ॷ Uue | |`U+0978` | Letter | CONSONANT | _null_ | ॸ Marwari Dda | |`U+0979` | Letter | CONSONANT | _null_ | ॹ Zha | |`U+097A` | Letter | CONSONANT | _null_ | ॺ Heavy Ya | |`U+097B` | Letter | CONSONANT | _null_ | ॻ Gga | |`U+097C` | Letter | CONSONANT | _null_ | ॼ Jja | |`U+097D` | Letter | CONSONANT | _null_ | ॽ Glottal Stop | |`U+097E` | Letter | CONSONANT | _null_ | ॾ Ddda | |`U+097F` | Letter | CONSONANT | _null_ | ॿ Bba | ::: ## Devanagari Extended character table ## > Note: the cantillation marks of the "combining consonant" variety in > the Devanagari Extended block are _not_ considered consonants for > shaping purposes (including syllable identification, the > determination of the base consonant, or positioning "Reph"). :::{table} Devanagari Extended character table | Codepoint | Unicode category | Shaping class | Mark-placement subclass | Glyph | |:----------|:-----------------|:------------------|:---------------------------|:-----------------------------| |`U+A8E0` | Mark [Mn] | CANTILLATION | TOP_POSITION | ꣠ Combining Zero | |`U+A8E1` | Mark [Mn] | CANTILLATION | TOP_POSITION | ꣡ Combining One | |`U+A8E2` | Mark [Mn] | CANTILLATION | TOP_POSITION | ꣢ Combining Two | |`U+A8E3` | Mark [Mn] | CANTILLATION | TOP_POSITION | ꣣ Combining Three | |`U+A8E4` | Mark [Mn] | CANTILLATION | TOP_POSITION | ꣤ Combining Four | |`U+A8E5` | Mark [Mn] | CANTILLATION | TOP_POSITION | ꣥ Combining Five | |`U+A8E6` | Mark [Mn] | CANTILLATION | TOP_POSITION | ꣦ Combining Six | |`U+A8E7` | Mark [Mn] | CANTILLATION | TOP_POSITION | ꣧ Combining Seven | |`U+A8E8` | Mark [Mn] | CANTILLATION | TOP_POSITION | ꣨ Combining Eight | |`U+A8E9` | Mark [Mn] | CANTILLATION | TOP_POSITION | ꣩ Combining Nine | |`U+A8EA` | Mark [Mn] | CANTILLATION | TOP_POSITION | ꣪ Combining A | |`U+A8EB` | Mark [Mn] | CANTILLATION | TOP_POSITION | ꣫ Combining U | |`U+A8EC` | Mark [Mn] | CANTILLATION | TOP_POSITION | ꣬ Combining Ka | |`U+A8ED` | Mark [Mn] | CANTILLATION | TOP_POSITION | ꣭ Combining Na | |`U+A8EE` | Mark [Mn] | CANTILLATION | TOP_POSITION | ꣮ Combining Pa | |`U+A8EF` | Mark [Mn] | CANTILLATION | TOP_POSITION | ꣯ Combining Ra | | | | | | |`U+A8F0` | Mark [Mn] | CANTILLATION | TOP_POSITION | ꣰ Combining Vi | |`U+A8F1` | Mark [Mn] | CANTILLATION | TOP_POSITION | ꣱ Combining Avagraha | |`U+A8F2` | Letter | SYMBOL | _null_ | ꣲ Spacing Candrabindu | |`U+A8F3` | Letter | BINDU | _null_ | ꣳ Candrabindu Virama | |`U+A8F4` | Letter | _null_ | _null_ | ꣴ Double Candrabindu Virama| |`U+A8F5` | Letter | _null_ | _null_ | ꣵ Candrabindu Two | |`U+A8F6` | Letter | _null_ | _null_ | ꣶ Candrabindu Three | |`U+A8F7` | Letter | SYMBOL | _null_ | ꣷ Candrabindu Avagraha| |`U+A8F8` | Punctuation | _null_ | _null_ | ꣸ Pushpika | |`U+A8F9` | Punctuation | _null_ | _null_ | ꣹ Gap Filler | |`U+A8FA` | Punctuation | _null_ | _null_ | ꣺ Caret | |`U+A8FB` | Letter | _null_ | _null_ | ꣻ Headstroke | |`U+A8FC` | Punctuation | _null_ | _null_ | ꣼ Siddham | |`U+A8FD` | Letter | _null_ | _null_ | ꣽ Jain Om | |`U+A8FE` | Letter | VOWEL_INDEPENDENT | _null_ | ꣾ Ay | |`U+A8FF` | Mark [Mn] | VOWEL_DEPENDENT | TOP_POSITION | ꣿ Sign Ay | | | | | | ::: ## Devanagari Extended-A character table ## :::{table} Devanagari Extended-A character table | Codepoint | Unicode category | Shaping class | Mark-placement subclass | Glyph | |:----------|:-----------------|:--------------|:------------------------|:----------------------------------------| | `U+11B00` | Punctuation | _null_ | _null_ | 𑬀 Head Mark | | `U+11B01` | Punctuation | _null_ | _null_ | 𑬁 Head Mark With Headstroke | | `U+11B02` | Punctuation | _null_ | _null_ | 𑬂 Sign Bhale | | `U+11B03` | Punctuation | _null_ | _null_ | 𑬃 Sign Bhale With Hook | | `U+11B04` | Punctuation | _null_ | _null_ | 𑬄 Sign Extended Bhale | | `U+11B05` | Punctuation | _null_ | _null_ | 𑬅 Sign Extended Bhale With Hook | | `U+11B06` | Punctuation | _null_ | _null_ | 𑬆 Sign Western Five-like Bhale | | `U+11B07` | Punctuation | _null_ | _null_ | 𑬇 Sign Western Nine-like Bhale | | `U+11B08` | Punctuation | _null_ | _null_ | 𑬈 Sign Reversed Nine-like Bhale | | `U+11B09` | Punctuation | _null_ | _null_ | 𑬉 Sign Mindu | | `U+11B0A` | _unassigned_ | | | | | `U+11B0B` | _unassigned_ | | | | | `U+11B0C` | _unassigned_ | | | | | `U+11B0D` | _unassigned_ | | | | | `U+11B0E` | _unassigned_ | | | | | `U+11B0F` | _unassigned_ | | | | | | | | | | | `U+11B10` | _unassigned_ | | | | | `U+11B11` | _unassigned_ | | | | | `U+11B12` | _unassigned_ | | | | | `U+11B13` | _unassigned_ | | | | | `U+11B14` | _unassigned_ | | | | | `U+11B15` | _unassigned_ | | | | | `U+11B16` | _unassigned_ | | | | | `U+11B17` | _unassigned_ | | | | | `U+11B18` | _unassigned_ | | | | | `U+11B19` | _unassigned_ | | | | | `U+11B1A` | _unassigned_ | | | | | `U+11B1B` | _unassigned_ | | | | | `U+11B1C` | _unassigned_ | | | | | `U+11B1D` | _unassigned_ | | | | | `U+11B1E` | _unassigned_ | | | | | `U+11B1F` | _unassigned_ | | | | | | | | | | | `U+11B20` | _unassigned_ | | | | | `U+11B21` | _unassigned_ | | | | | `U+11B22` | _unassigned_ | | | | | `U+11B23` | _unassigned_ | | | | | `U+11B24` | _unassigned_ | | | | | `U+11B25` | _unassigned_ | | | | | `U+11B26` | _unassigned_ | | | | | `U+11B27` | _unassigned_ | | | | | `U+11B28` | _unassigned_ | | | | | `U+11B29` | _unassigned_ | | | | | `U+11B2A` | _unassigned_ | | | | | `U+11B2B` | _unassigned_ | | | | | `U+11B2C` | _unassigned_ | | | | | `U+11B2D` | _unassigned_ | | | | | `U+11B2E` | _unassigned_ | | | | | `U+11B2F` | _unassigned_ | | | | | | | | | | | `U+11B30` | _unassigned_ | | | | | `U+11B31` | _unassigned_ | | | | | `U+11B32` | _unassigned_ | | | | | `U+11B33` | _unassigned_ | | | | | `U+11B34` | _unassigned_ | | | | | `U+11B35` | _unassigned_ | | | | | `U+11B36` | _unassigned_ | | | | | `U+11B37` | _unassigned_ | | | | | `U+11B38` | _unassigned_ | | | | | `U+11B39` | _unassigned_ | | | | | `U+11B3A` | _unassigned_ | | | | | `U+11B3B` | _unassigned_ | | | | | `U+11B3C` | _unassigned_ | | | | | `U+11B3D` | _unassigned_ | | | | | `U+11B3E` | _unassigned_ | | | | | `U+11B3F` | _unassigned_ | | | | | | | | | | | `U+11B40` | _unassigned_ | | | | | `U+11B41` | _unassigned_ | | | | | `U+11B42` | _unassigned_ | | | | | `U+11B43` | _unassigned_ | | | | | `U+11B44` | _unassigned_ | | | | | `U+11B45` | _unassigned_ | | | | | `U+11B46` | _unassigned_ | | | | | `U+11B47` | _unassigned_ | | | | | `U+11B48` | _unassigned_ | | | | | `U+11B49` | _unassigned_ | | | | | `U+11B4A` | _unassigned_ | | | | | `U+11B4B` | _unassigned_ | | | | | `U+11B4C` | _unassigned_ | | | | | `U+11B4D` | _unassigned_ | | | | | `U+11B4E` | _unassigned_ | | | | | `U+11B4F` | _unassigned_ | | | | | | | | | | | `U+11B50` | _unassigned_ | | | | | `U+11B51` | _unassigned_ | | | | | `U+11B52` | _unassigned_ | | | | | `U+11B53` | _unassigned_ | | | | | `U+11B54` | _unassigned_ | | | | | `U+11B55` | _unassigned_ | | | | | `U+11B56` | _unassigned_ | | | | | `U+11B57` | _unassigned_ | | | | | `U+11B58` | _unassigned_ | | | | | `U+11B59` | _unassigned_ | | | | | `U+11B5A` | _unassigned_ | | | | | `U+11B5B` | _unassigned_ | | | | | `U+11B5C` | _unassigned_ | | | | | `U+11B5D` | _unassigned_ | | | | | `U+11B5E` | _unassigned_ | | | | | `U+11B5F` | _unassigned_ | | | | | | | | | | ::: ## Vedic Extensions character table ## Sanskrit runs written in the Devanagari script may also include characters from the Vedic Extensions block. These characters should be classified as follows. > Note: See the [Vedic Extensions](../opentype-shaping-vedic-extensions.md) > document for additional information. :::{table} Vedic Extensions character table | Codepoint | Unicode category | Shaping class | Mark-placement subclass | Glyph | |:----------|:-----------------|:------------------|:---------------------------|:-----------------------------| |`U+1CD0` | Mark [Mn] | CANTILLATION | TOP_POSITION | ᳐ Tone Karshana | |`U+1CD1` | Mark [Mn] | CANTILLATION | TOP_POSITION | ᳑ Tone Shara | |`U+1CD2` | Mark [Mn] | CANTILLATION | TOP_POSITION | ᳒ Tone Prenkha | |`U+1CD3` | Punctuation | _null_ | _null_ | ᳓ Sign Nihshvasa | |`U+1CD4` | Mark [Mn] | CANTILLATION | OVERSTRUCK | ᳔ Tone Midline Svarita | |`U+1CD5` | Mark [Mn] | CANTILLATION | BOTTOM_POSITION | ᳕ Tone Aggravated Independent Svarita | |`U+1CD6` | Mark [Mn] | CANTILLATION | BOTTOM_POSITION | ᳖ Tone Independent Svarita | |`U+1CD7` | Mark [Mn] | CANTILLATION | BOTTOM_POSITION | ᳗ Tone Kathaka Independent Svarita | |`U+1CD8` | Mark [Mn] | CANTILLATION | BOTTOM_POSITION | ᳘ Tone Candra Below | |`U+1CD9` | Mark [Mn] | CANTILLATION | BOTTOM_POSITION | ᳙ Tone Kathaka Independent Svarita Schroeder | |`U+1CDA` | Mark [Mn] | CANTILLATION | TOP_POSITION | ᳚ Tone Double Svarita | |`U+1CDB` | Mark [Mn] | CANTILLATION | TOP_POSITION | ᳛ Tone Triple Svarita | |`U+1CDC` | Mark [Mn] | CANTILLATION | BOTTOM_POSITION | ᳜ Tone Kathaka Anudatta | |`U+1CDD` | Mark [Mn] | CANTILLATION | BOTTOM_POSITION | ᳝ Tone Dot Below | |`U+1CDE` | Mark [Mn] | CANTILLATION | BOTTOM_POSITION | ᳞ Tone Two Dots Below | |`U+1CDF` | Mark [Mn] | CANTILLATION | BOTTOM_POSITION | ᳟ Tone Three Dots Below | | | | | | |`U+1CE0` | Mark [Mn] | CANTILLATION | TOP_POSITION | ᳠ Tone Rigvedic Kashmiri Independent Svarita | |`U+1CE1` | Mark [Mc] | CANTILLATION | RIGHT_POSITION | ᳡ Tone Atharavedic Independent Svarita | |`U+1CE2` | Mark [Mn] | AVAGRAHA | OVERSTRUCK | ᳢ Sign Visarga Svarita | |`U+1CE3` | Mark [Mn] | _null_ | OVERSTRUCK | ᳣ Sign Visarga Udatta | |`U+1CE4` | Mark [Mn] | _null_ | OVERSTRUCK | ᳤ Sign Reversed Visarga Udatta | |`U+1CE5` | Mark [Mn] | _null_ | OVERSTRUCK | ᳥ Sign Visarga Anudatta | |`U+1CE6` | Mark [Mn] | _null_ | OVERSTRUCK | ᳦ Sign Reversed Visarga Anudatta | |`U+1CE7` | Mark [Mn] | _null_ | OVERSTRUCK | ᳧ Sign Visarga Udatta With Tail | |`U+1CE8` | Mark [Mn] | AVAGRAHA | OVERSTRUCK | ᳨ Sign Visarga Anudatta With Tail | |`U+1CE9` | Letter | SYMBOL | _null_ | ᳩ Sign Anusvara Antargomukha | |`U+1CEA` | Letter | _null_ | _null_ | ᳪ Sign Anusvara Bahirgomukha | |`U+1CEB` | Letter | _null_ | _null_ | ᳫ Sign Anusvara Vamagomukha | |`U+1CEC` | Letter | SYMBOL | _null_ | ᳬ Sign Anusvara Vamagomukha With Tail | |`U+1CED` | Mark [Mn] | AVAGRAHA | BOTTOM_POSITION | ᳭ Sign Tiryak | |`U+1CEE` | Letter | SYMBOL | _null_ | ᳮ Sign Hexiform Long Anusvara | |`U+1CEF` | Letter | _null_ | _null_ | ᳯ Sign Long Anusvara | | | | | | |`U+1CF0` | Letter | _null_ | _null_ | ᳰ Sign Rthang Long Anusvara | |`U+1CF2` | Letter | CONSONANT_DEAD | _null_ | ᳲ Sign Ardhavisarga | |`U+1CF3` | Letter | CONSONANT_DEAD | _null_ | ᳳ Sign Rotated Ardhavisarga | |`U+1CF3` | Mark [Mc] | VISARGA | _null_ | ᳳ Sign Rotated Ardhavisarga | |`U+1CF4` | Mark [Mn] | CANTILLATION | TOP_POSITION | ᳴ Tone Candra Above | |`U+1CF5` | Letter | CONSONANT_WITH_STACKER | _null_ | ᳵ Sign Jihvamuliya | |`U+1CF6` | Letter | CONSONANT_WITH_STACKER | _null_ | ᳶ Sign Upadhmaniya | |`U+1CF7` | Mark [Mc] | _null_ | _null_ | ᳷ Sign Atikrama | |`U+1CF8` | Mark [Mn] | CANTILLATION | _null_ | ᳸ Tone Ring Above | |`U+1CF9` | Mark [Mn] | CANTILLATION | _null_ | ᳹ Tone Double Ring Above | |`U+1CFA` | Letter | PLACEHOLDER | _null_ | ᳺ Sign Double Anusvara Antargomukha | |`U+1CFB` | _unassigned_ | | | | |`U+1CFC` | _unassigned_ | | | | |`U+1CFD` | _unassigned_ | | | | |`U+1CFE` | _unassigned_ | | | | |`U+1CFF` | _unassigned_ | | | | ::: ## Miscellaneous character table ## Other important characters that may be encountered when shaping runs of Devanagari text include the dotted-circle placeholder (`U+25CC`), the zero-width joiner (`U+200D`) and zero-width non-joiner (`U+200C`), and the no-break space (`U+00A0`). The dotted-circle placeholder is frequently used when displaying a dependent vowel (matra) or a combining mark in isolation. Real-world text syllables may also use other characters, such as hyphens or dashes, in a similar placeholder fashion; shaping engines should cope with this situation gracefully. :::{table} Miscellaneous character table | Codepoint | Unicode category | Shaping class | Mark-placement subclass | Glyph | |:----------|:-----------------|:------------------|:---------------------------|:-------------------------------| |`U+00A0` | Separator | PLACEHOLDER | _null_ |   No-break space | |`U+200C` | Other | NON_JOINER | _null_ | ‌ Zero-width non-joiner | |`U+200D` | Other | JOINER | _null_ | ‍ Zero-width joiner | |`U+2010` | Punctuation | PLACEHOLDER | _null_ | ‐ Hyphen | |`U+2011` | Punctuation | PLACEHOLDER | _null_ | ‑ No-break hyphen | |`U+2012` | Punctuation | PLACEHOLDER | _null_ | ‒ Figure dash | |`U+2013` | Punctuation | PLACEHOLDER | _null_ | – En dash | |`U+2014` | Punctuation | PLACEHOLDER | _null_ | — Em dash | |`U+25CC` | Symbol | DOTTED_CIRCLE | _null_ | ◌ Dotted circle | ::: The zero-width joiner (ZWJ) is primarily used to prevent the formation of a conjunct from a "_Consonant_,Halant,_Consonant_" sequence. The sequence "_Consonant_,Halant,ZWJ,_Consonant_" blocks the formation of a conjunct between the two consonants. Note, however, that the "_Consonant_,Halant" subsequence in the above example may still trigger a half-forms feature. To prevent the application of the half-forms feature in addition to preventing the conjunct, the zero-width non-joiner (ZWNJ) must be used instead. The sequence "_Consonant_,Halant,ZWNJ,_Consonant_" should produce the first consonant in its standard form, followed by an explicit "Halant". A secondary usage of the zero-width joiner is to prevent the formation of "Reph". An initial "Ra,Halant,ZWJ" sequence should not produce a "Reph", where an initial "Ra,Halant" sequence without the zero-width joiner otherwise would. The no-break space (NBSP) is primarily used to display those codepoints that are defined as non-spacing (marks, dependent vowels (matras), below-base consonant forms, and post-base consonant forms) in an isolated context, as an alternative to displaying them superimposed on the dotted-circle placeholder. These sequences will match "NBSP,ZWJ,Halant,_Consonant_", "NBSP,_mark_", or "NBSP,_matra_".