U+0C4D was added to Unicode in version 1.1 (1993). It belongs to the block Telugu in the Basic Multilingual Plane.

This character is a Nonspacing Mark and is mainly used in the Telugu script. The character is also known as halant (the preferred name).

The glyph is not a composition. It has a Neutral East Asian Width. In bidirectional context it acts as Nonspacing Mark and is not mirrored. In text U+0C4D behaves as Combining Mark regarding line breaks. It has type Extend for sentence and Extend for word breaks. The Grapheme Cluster Break is Extend.

The Wikipedia has the following information about this codepoint:

Virama (Sanskrit: विराम, virāma ? ्) is a generic term for the diacritic in many Brahmic scripts, including Devanagari and Eastern Nagari script, that is used to suppress the inherent vowel that otherwise occurs with every consonant letter. The name is Sanskrit for "cessation, termination, end". As a Sanskrit word, it is used in place of several language-specific terms, such as halant (Hindi: हलन्त, halant ? ्), hôshonto (Bengali: হসন্ত, hoshonto ? ্), halantu (Telugu: హలంతు, halantu ? ్), pulli (Tamil: புள்ளி, puḷḷi ? ்), chandrakkala (Malayalam: ചന്ദ്രക്കല, candrakkala ? ്), halanta (Kannada: ಹಲಂತ, halanta ? ್), halanta (Oriya: ହଳନ୍ତ, haḷanta ? ୍), (Punjabi: ਹਲਂਤ, halant ? ୍) a that (Burmese: အသတ်, a.sat IPA: [ʔa̰θaʔ], lit. "nonexistence"), and karan (Thai: การันต์) or thanthakhat (Thai: ทัณฑฆาต).

In Devanagari and many other Indic scripts, a virama is used to cancel—or “kill”—the inherent vowel of a consonant letter and represent a consonant without a vowel, so-called a “dead” consonant. For example, in Devanagari,

  1. क is a consonant letter, ka,
  2. ् is a virama; therefore,
  3. क् (ka + virama) represents a dead consonant k.

If this k क् is further followed by another consonant letter, for example, ṣa ष, the result might look like क्‌ष, which represents kṣa as ka + (visible) virama + ṣa. In this case, two elements k क् and ṣa ष are simply placed one by one, side by side. Alternatively, kṣa can be also written as a ligature क्ष, which is actually the preferred form.

Generally, when a dead consonant letter C1 and another consonant letter C2 are conjoined, the result may be either:

  1. A fully conjoined ligature of C1+C2;
  2. Half-conjoined—
    • C1-conjoining: a modified form (half form) of C1 attached to the original form (full form) of C2
    • C2-conjoining: a modified form of C2 attached to the full form of C1; or
  3. Non-ligated: full forms of C1 and C2 with a visible virama.

If the result is fully or half-conjoined, the (conceptual) virama which made C1 dead becomes invisible, only logically existing in a character encoding scheme such as ISCII or Unicode. If the result is non-ligated, a virama is visible, attached to C1, actually written.

Basically, those differences are only glyph variants and three forms are semantically identical. Although there may be a preferred form for a given consonant cluster in each language and some scripts do not have some kind of ligatures or half forms at all, it is generally acceptable to use a non-ligature form instead of a ligature form even when the latter is preferred, if the font does not have a glyph for the ligature. In some other cases, whether to use a ligature or not is merely a matter of taste.

The virama in the sequence C1 + virama + C2 may thus work as an invisible control character to ligate C1 and C2 in Unicode. For example,

  • ka क + virama + ṣa ष = kṣa क्ष

is a fully conjoined ligature. It is also possible that the virama does not ligate C1 and C2, leaving the full forms of C1 and C2 as they are:

  • ka क + virama + ṣa ष = kṣa क्‌ष

is an example of such a non-ligated form.

The sequences ङ्क ङ्ख ङ्ग ङ्घ [ŋka ŋkʰa ŋɡa ŋɡʱa] in correct Devanagari handwriting should be written as conjuncts (the virama and the top cross line of theरप््ु््क्क्ग्क्क्क्क्त्त्त्त second letter disappear, and what is left of the second letter is written under the ङ and joined to it).


System Representation
UTF-8 E0 B1 8D
UTF-16 0C 4D
UTF-32 00 00 0C 4D
URL-Quoted %E0%B1%8D
HTML-Escape ్
Wrong windows-1252 Mojibake ్
alias halant (the preferred name)


Complete Record

Property Value
Age (age) 1.1
Unicode Name (na) TELUGU SIGN VIRAMA
Unicode 1 Name (na1)
Block (blk) Telugu
General Category (gc) Nonspacing Mark
Script (sc) Telugu
Bidirectional Category (bc) Nonspacing Mark
Combining Class (ccc) Virama
Decomposition Type (dt) None
Decomposition Mapping (dm) ్
Lowercase (Lower)
Simple Lowercase Mapping (slc) ్
Lowercase Mapping (lc) ్
Uppercase (Upper)
Simple Uppercase Mapping (suc) ్
Uppercase Mapping (uc) ్
Simple Titlecase Mapping (stc) ్
Titlecase Mapping (tc) ్
Case Folding (cf) ్
ASCII Hex Digit (AHex)
Alphabetic (Alpha)
Bidi Control (Bidi_C)
Bidi Mirrored (Bidi_M)
Bidi Paired Bracket (bpb) ్
Bidi Paired Bracket Type (bpt) None
Cased (Cased)
Composition Exclusion (CE)
Case Ignorable (CI)
Full Composition Exclusion (Comp_Ex)
Changes When Casefolded (CWCF)
Changes When Casemapped (CWCM)
Changes When NFKC Casefolded (CWKCF)
Changes When Lowercased (CWL)
Changes When Titlecased (CWT)
Changes When Uppercased (CWU)
Dash (Dash)
Deprecated (Dep)
Default Ignorable Code Point (DI)
Diacritic (Dia)
East Asian Width (ea) Neutral
Extender (Ext)
FC NFKC Closure (FC_NFKC) ్
Grapheme Cluster Break (GCB) Extend
Grapheme Base (Gr_Base)
Grapheme Extend (Gr_Ext)
Hex Digit (Hex)
Hangul Syllable Type (hst) Not Applicable
Hyphen (Hyphen)
ID Continue (IDC)
Ideographic (Ideo)
ID Start (IDS)
IDS Binary Operator (IDSB)
IDS Trinary Operator and (IDST)
Indic Positional Category (InPC) Top
Indic Syllabic Category (InSC) Virama
ISO 10646 Comment (isc)
Joining Group (jg) No_Joining_Group
Join Control (Join_C)
Jamo Short Name (JSN)
Joining Type (jt) Transparent
Line Break (lb) Combining Mark
Logical Order Exception (LOE)
Math (Math)
Noncharacter Code Point (NChar)
NFC Quick Check (NFC_QC) Yes
NFD Quick Check (NFD_QC) Yes
NFKC Casefold (NFKC_CF) ్
NFKC Quick Check (NFKC_QC) Yes
NFKD Quick Check (NFKD_QC) Yes
Numeric Type (nt) None
Numeric Value (nv) NaN
Other Alphabetic (OAlpha)
Other Default Ignorable Code Point (ODI)
Other Grapheme Extend (OGr_Ext)
Other ID Continue (OIDC)
Other ID Start (OIDS)
Other Lowercase (OLower)
Other Math (OMath)
Other Uppercase (OUpper)
Pattern Syntax (Pat_Syn)
Pattern White Space (Pat_WS)
Quotation Mark (QMark)
Radical (Radical)
Sentence Break (SB) Extend
Simple Case Folding (scf) ్
Script Extension (scx) Telugu
Soft Dotted (SD)
STerm (STerm)
Terminal Punctuation (Term)
Unified Ideograph (UIdeo)
Variation Selector (VS)
Word Break (WB) Extend
White Space (WSpace)
XID Continue (XIDC)
XID Start (XIDS)
Expands On NFC (XO_NFC)
Expands On NFD (XO_NFD)
Expands On NFKC (XO_NFKC)
Expands On NFKD (XO_NFKD)