Duplicate characters in Unicode

From Wikipedia, the free encyclopedia
Jump to: navigation, search

Unicode has a certain amount of duplication of characters. These are pairs of single Unicode code points that are canonically equivalent. The reason for this are compatibility issues with legacy systems.

Unless two characters are canonically equivalent, they are not "duplicate" in the narrow sense. There is, however, room for disagreement on whether two Unicode characters really encode the same grapheme in cases such as the "micro sign" µ vs. the Greek μ.

This should be clearly distinguished from Unicode characters that are rendered as identical glyphs or near-identical glyphs (homoglyphs), either because they are historically cognate (such as Greek Η vs. Latin H) or because of coincidental similarity (such as Greek Ρ vs. Latin P, or Greek Η vs. Cyrillic Н, or the following homoglyphs quadruplet: astronomical symbol for "Sun" , "circled dot operator" , the Gothic letter 𐍈, the IPA symbol for a bilabial click ʘ).

Duplicate vs. derived character[edit]

Further information: character (computing) and grapheme

Unicode aims at encoding graphemes, not individual "meanings" ("semantics") of graphemes, and not glyphs. It is a matter of case-by-case judgement whether such characters should receive separate encoding when used in technical contexts, e.g. Greek letters used as mathematical symbols: thus, the choice to have a "micro- sign" µ separate from Greek μ, but not a "Mega sign" separate from Latin M was a pragmatic decision by Unicode consortium for historical reasons (compatibility with Latin-1 which included a micro sign). Technically µ and μ are not duplicate characters in that the consortium viewed these symbols as distinct characters (while it regarded M for "Mega" and Latin M as one and the same character).

Note that merely having different "meanings" is not sufficient grounds to split a grapheme into several characters: Thus, the acute accent may represent word accent in Welsh or Swedish, it may express vowel quality in French, and it may express vowel length in Hungarian, Icelandic or Irish. Since all these languages are written in the same script, namely Latin script, the acute accent in its various meanings is considered one and the same combining diacritic character (U+0301), as well as the accented letter é is the same character in French and Hungarian. There is a separate "combining diacritic acute tone mark" at U+0341 for the romanization of tone languages, one important difference between the two being that in a language like French, the acute accent can replace the dot over the lowercase i, whereas in a language like Vietnamese, the acute tone mark is added above the dot. Diacritic signs for alphabets considered independent may be encoded separately, such as the acute ("tonos") for the Greek alphabet at U+0384, and for the Armenian alphabet at U+055B. Some Cyrillic-based alphabets (such as Russian) also use the acute accent, but there is no "Cyrillic acute" encoded separately and U+301 should be used for Cyrillic as well as Latin (see Cyrillic characters in Unicode). The point that the same grapheme can have many "meanings" is even more obvious considering e.g. the letter U, which has entirely different phonemic referents in the various languages that use it in their orthographies (English /juː/, /ʊ/, /ʌ/ etc., French /y/, German /uː/, /u/, etc., not to mention various uses of U as a symbol).

Compatibility issues[edit]

CJK fullwidth forms[edit]

Main article: Fullwidth form

In traditional Chinese character encodings, characters usually took either a single byte (known as halfwidth) or two bytes (known as fullwidth). Characters that took a single byte were generally displayed at half the width of those that took two bytes. Some characters such as the Latin alphabet were available in both halfwidth and fullwidth versions. As the halfwidth versions were more commonly used, they were generally the ones mapped to the standard code points for those characters. Therefore a separate section was needed for the fullwidth forms to preserve the distinction.

Letterlike symbols[edit]

Main article: Letterlike Symbols

In some cases, specific graphemes have acquired a specialized symbolic or technical meaning separate from their original function. A prominent example is the Greek letter π which is widely recognized as the symbol for a mathematical constant even by people not literate in Greek.

Several variants of the entire Greek and Latin alphabets specifically for use as mathematical symbols are encoded in the Mathematical alphanumeric symbols range. This range disambiguates characters that would usually be considered font variants but are encoded separately because of widespread use of font variants (e.g. L vs. "script L" vs. "blackletter L" 𝔏 vs. "boldface blackletter L" 𝕷) as distinctive mathematical symbols. It is intended for use only in mathematical or technical notation, not use in non-technical text.[1]

Greek[edit]

Many Greek letters are used as technical symbols. All of the Greek letters are encoded in the Greek section of Unicode but many are encoded a second time under the name of the technical symbol they represent. The "micro sign" (U+00B5, µ) is obviously inherited from ISO 8859-1, but the origin of the others is less clear.

Other Greek glyph variants encoded as separate characters include the lunate sigma Ϲ ϲ contrasting with Σ σ, final sigma ς (strictly speaking a contextual glyph variant) contrasting with σ, The Qoppa numeral symbol Ϟ ϟ contrasting with archaic Ϙ ϙ.

Greek letters assigned separate "symbol" codepoints include the Letterlike Symbols ϐ, ϵ, ϑ, ϖ, ϱ, ϒ, and ϕ (contrasting with β, ε, θ, π, ρ, Υ, φ); the Ohm symbol Ω (contrasting with Ω); and the mathematical operators for the product and sum (contrasting with Π and Σ).

Roman numerals[edit]

Unicode has a number of characters specifically designated as Roman numerals, as part of the Number Forms range from U+2160 to U+2183. For example, Roman 1988 (MCMLXXXVIII) could alternatively be written as ⅯⅭⅯⅬⅩⅩⅩⅧ. This range includes both upper- and lowercase numerals, as well as pre-combined glyphs for numbers up to 12 (Ⅻ for XII), mainly intended for clock faces.

The pre-combined glyphs should only be used to represent the individual numbers where the use of individual glyphs is not wanted, and not to replace compounded numbers. For example, one can combine Ⅹ with Ⅰ to mean Roman numeral eleven (ⅩⅠ), so U+216A (Ⅺ) is canonically equivalent to ⅩⅠ. Such characters are also referred to as composite compatibility characters or decomposable compatibility characters. Such characters would not normally have been included within the Unicode standard except for compatibility with other existing encodings (see Unicode compatibility characters). The goal was to accommodate simple translation from existing encodings into Unicode. This makes translations in the opposite direction complicated because multiple Unicode characters may map to a single character in another encoding. Without the compatibility concerns the only characters necessary would be: Ⅰ, Ⅴ, Ⅹ, Ⅼ, Ⅽ, Ⅾ, Ⅿ, ⅰ, ⅴ, ⅹ, ⅼ, ⅽ, ⅾ, ⅿ, ↀ, ↁ, ↂ, Ↄ; all other Roman numerals can be composed from these.

See also[edit]

References[edit]