In
digital typography, combining characters are
characters that are intended to modify other characters. The most common combining characters in the Latin script are the combining
diacritical marks (including combining accents).
Unicode
Unicode or ''The Unicode Standard'' or TUS is a character encoding standard maintained by the Unicode Consortium designed to support the use of text in all of the world's writing systems that can be digitized. Version 16.0 defines 154,998 Char ...
also contains many
precomposed character
A precomposed character (alternatively composite character or decomposable character) is a Unicode entity that can also be defined as a sequence of one or more other characters. A precomposed character may typically represent a letter with a diac ...
s, so that in many cases it is possible to use both combining diacritics and precomposed characters, at the user's or application's choice. This leads to a requirement to perform
Unicode normalization
Unicode equivalence is the specification by the Unicode character (computing), character encoding standard that some sequences of code points represent essentially the same character. This feature was introduced in the standard to allow compatibi ...
before comparing two Unicode strings and to carefully design encoding converters to correctly map all of the valid ways to represent a character in Unicode to a legacy encoding to avoid data loss.
In Unicode, the main block of combining diacritics for European languages and the
International Phonetic Alphabet
The International Phonetic Alphabet (IPA) is an alphabetic system of phonetic notation based primarily on the Latin script. It was devised by the International Phonetic Association in the late 19th century as a standard written representation ...
is U+0300–U+036F. Combining diacritical marks are also present in many other blocks of Unicode characters. In Unicode, diacritics are always added after the main character (in contrast to some older combining character sets such as
ANSEL), and it is possible to add several diacritics to the same character, including stacked diacritics above and below, though some systems may not render these well.
Unicode ranges
The following blocks are dedicated specifically to combining characters:
*Combining Diacritical Marks (0300–036F), since version 1.0, with modifications in subsequent versions down to 4.1
*Combining Diacritical Marks Extended (1AB0–1AFF), version 7.0
*Combining Diacritical Marks Supplement (1DC0–1DFF), versions 4.1 to 5.2
*Combining Diacritical Marks for Symbols (20D0–20FF), since version 1.0, with modifications in subsequent versions down to 5.1
*Cyrillic Extended-A (2DE0–2DFF), version 5.1
*Combining Half Marks (FE20–FE2F), versions 1.0, with modifications in subsequent versions down to 8.0
Combining characters are not limited to these blocks; for instance, the combining
dakuten (U+3099) and combining
handakuten (U+309A) are in the
Hiragana block, the
Devanagari
Devanagari ( ; in script: , , ) is an Indic script used in the Indian subcontinent. It is a left-to-right abugida (a type of segmental Writing systems#Segmental systems: alphabets, writing system), based on the ancient ''Brāhmī script, Brā ...
block contains combining vowel signs and other marks for use with that script, and so forth. Combining characters are assigned the
Unicode major category "M" ("Mark").
Codepoints U+032A and U+0346–034A are
IPA symbols:
* U+032A :
dental
* U+0346 :
dentolabial
* U+0347 :
alveolar
* U+0348 : strong
articulation
* U+0349 : weak articulation
* U+034A :
denasal
Codepoints U+034B–034E are IPA diacritics for
disordered speech:
* U+034B : nasal escape
* U+034C : velopharyngeal friction
* U+034D : labial spreading
* U+034E : whistled articulation
U+034F is the "
combining grapheme joiner" (CGJ) and has no visible glyph.
Codepoints U+035C–0362 are
double diacritics, diacritic signs placed across two letters.
Codepoints U+0363–036F are medieval superscript letter diacritics, letters written directly above other letters appearing in medieval Germanic manuscripts, but in some instances in use until as late as the 19th century. For example, U+0364 is an ''e'' written above the preceding letter, to be used for (
Early)
New High German umlaut notation, such as ''uͤ'' for Modern German ''ü''.
OpenType
OpenType has the ''ccmp'' "feature tag" to define glyphs that are compositions or decompositions involving combining characters, the ''mark'' tag to define the positioning of combining characters onto base glyph, and ''mkmk'' for the positionings of combining characters onto each other.
Zalgo text

Combining characters have been used to create
Zalgo text, which is text that appears "corrupted" or "creepy" due to an overuse of combining characters. This causes the text to extend vertically, overlapping other text.
This is mostly used in horror contexts on the
Internet
The Internet (or internet) is the Global network, global system of interconnected computer networks that uses the Internet protocol suite (TCP/IP) to communicate between networks and devices. It is a internetworking, network of networks ...
. It is typically very challenging for most
software
Software consists of computer programs that instruct the Execution (computing), execution of a computer. Software also includes design documents and specifications.
The history of software is closely tied to the development of digital comput ...
to render, so the combining marks are often reduced or completely stripped off.
See also
*
Dotted circle
*
Dead key
A dead key is a special kind of modifier key on a mechanical typewriter, or computer keyboard, that is typically used to attach a specific diacritic to a base letter (alphabet), letter. The dead key does not generate a (complete) grapheme, charact ...
*
Spacing Modifier Letters which shouldn't combine (although they do erroneously on some implementations where a developer has confused "combining" with "modifier")
Notes
External links
Combining diacritics chart(in Adobe
PDF format)
Combining diacritics supplement chart(in Adobe
PDF format)
Combining markstest page facing combined and precomposed letters
DecodeUnicode.org combining diacritical marks reference{{Unicode navigation
Unicode special code points