Jump to content

Combining character: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
→‎Zalgo text: this really has no place here, its inappropriate and only loosely connected to topic if at all
Tag: section blanking
m v2.05 - Fix errors for CW project (Link equal to linktext)
 
(36 intermediate revisions by 29 users not shown)
Line 1: Line 1:
{{short description|Non-spacing character that modifies another character}}
{{Distinguish|Spacing Modifier Letters}}
{{Distinguish|Spacing Modifier Letters}}
[[File:U nieskładovaje Unicode.svg|thumb|[[U (Cyrillic)|Cyrillic у]] combined with [[breve]] gives [[Short U (Cyrillic)|ў]].]]
[[File:U nieskładovaje Unicode.svg|thumb|[[U (Cyrillic)|Cyrillic U]] combined with [[breve]] gives [[Short U (Cyrillic)|ў]].]]
{{Contains special characters}}
{{Contains special characters}}


Line 7: Line 8:
[[Unicode]] also contains many [[precomposed character]]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]] 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.<ref>For example, when converting between [[windows-1258]] and [[VISCII]], the former uses combining diacritics whilst the latter has a large selection of precomposed characters so a converter using a simple mapping between code values and Unicode code points will corrupt text when converting between them.</ref>
[[Unicode]] also contains many [[precomposed character]]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]] 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.<ref>For example, when converting between [[windows-1258]] and [[VISCII]], the former uses combining diacritics whilst the latter has a large selection of precomposed characters so a converter using a simple mapping between code values and Unicode code points will corrupt text when converting between them.</ref>


In Unicode, the main block of combining diacritics for European languages and the [[International Phonetic Alphabet]] 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]]), so it is possible to add several diacritics to the same character, although {{as of|2010|lc=on}}, few applications support correct rendering of such combinations.
In Unicode, the main block of combining diacritics for European languages and the [[International Phonetic Alphabet]] 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.

==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.


==Unicode ranges==
==Unicode ranges==
{{Main | Combining Diacritical Marks | Combining Diacritical Marks Extended | Combining Diacritical Marks Supplement | Combining Diacritical Marks for Symbols | Combining Half Marks | l1 = Combining Diacritical Marks (Unicode block) | l2 = Combining Diacritical Marks Extended (Unicode block) | l3 = Combining Diacritical Marks Supplement (Unicode block) | l4 = Combining Diacritical Marks for Symbols (Unicode block) | l5 = Combining Half Marks (Unicode block)}}
{{Main | Combining Diacritical Marks | Combining Diacritical Marks Extended | Combining Diacritical Marks Supplement | Combining Diacritical Marks for Symbols | Combining Half Marks | l1 = Combining Diacritical Marks (Unicode block) | l2 = Combining Diacritical Marks Extended (Unicode block) | l3 = Combining Diacritical Marks Supplement (Unicode block) | l4 = Combining Diacritical Marks for Symbols (Unicode block) | l5 = Combining Half Marks (Unicode block)|Cyrillic Extended-A}}


The following blocks are dedicated specifically to combining characters:
The following blocks are dedicated specifically to combining characters:
Line 21: Line 19:
*Combining Diacritical Marks Supplement (1DC0–1DFF), versions 4.1 to 5.2
*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
*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 Half Marks (FE20–FE2F), versions 1.0, with modifications in subsequent versions down to 8.0


Line 54: Line 53:


{{Unicode chart Combining Half Marks}}
{{Unicode chart Combining Half Marks}}

==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==
<!--Please do not add any examples here, unless in the form of a screenshot, as the text can cause various problems with: viewing, layout, accessibility, editing, etc.-->
{{main article|Zalgo text}}
[[File:Zalgo text filter.png|thumb|A sentence of 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.<ref>{{cite web |title=How does Zalgo text work? |url=https://stackoverflow.com/a/20310289/3312910 |last=Korpela |first=Jukka K. |website=Stack Overflow |access-date=11 April 2019}}</ref> This is mostly used in horror contexts on the [[Internet]]. It is typically very challenging for most [[software]] to render, so the combining marks are often reduced or completely stripped off.


==See also==
==See also==
* [[Dotted circle]]
* [[Dead key]]
* [[Dead key]]
* [[Spacing Modifier Letters]] which shouldn't combine (although they do erroneously on some implementations where a developer has confused "combining" with "modifier")
* [[Spacing Modifier Letters]] which shouldn't combine (although they do erroneously on some implementations where a developer has confused "combining" with "modifier")
Line 65: Line 74:
* [https://www.unicode.org/charts/PDF/U0300.pdf Combining diacritics chart] (in Adobe [[Portable Document Format|PDF]] format)
* [https://www.unicode.org/charts/PDF/U0300.pdf Combining diacritics chart] (in Adobe [[Portable Document Format|PDF]] format)
* [https://www.unicode.org/charts/PDF/U1DC0.pdf Combining diacritics supplement chart] (in Adobe [[Portable Document Format|PDF]] format)
* [https://www.unicode.org/charts/PDF/U1DC0.pdf Combining diacritics supplement chart] (in Adobe [[Portable Document Format|PDF]] format)
* [http://www.user.uni-hannover.de/nhtcapri/combining-marks.html Combining marks] test page facing combined and precomposed letters
* [https://web.archive.org/web/20210211080236/http://www.user.uni-hannover.de/nhtcapri/combining-marks.html Combining marks] test page facing combined and precomposed letters
* [http://www.alanwood.net/unicode/combining_diacritical_marks.html Alan Wood’s Unicode Resources]
* [http://www.alanwood.net/unicode/combining_diacritical_marks.html Alan Wood’s Unicode Resources]
* [https://web.archive.org/web/20070520042623/http://www.decodeunicode.org/index.php?nodeId=70007&page=1&lang=1 DecodeUnicode.org combining diacritical marks reference]
* [https://web.archive.org/web/20070520042623/http://www.decodeunicode.org/index.php?nodeId=70007&page=1&lang=1 DecodeUnicode.org combining diacritical marks reference]
*[https://zalgo.org Zalgo Text Generator]

{{Unicode navigation}}
{{Unicode navigation}}



Latest revision as of 20:37, 31 May 2024

Cyrillic U combined with breve gives ў.

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 also contains many precomposed characters, 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 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.[1]

In Unicode, the main block of combining diacritics for European languages and the International Phonetic Alphabet 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

[edit]

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 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").

Combining Diacritical Marks[1]
Official Unicode Consortium code chart (PDF)
  0 1 2 3 4 5 6 7 8 9 A B C D E F
U+030x ◌̀ ◌́ ◌̂ ◌̃ ◌̄ ◌̅ ◌̆ ◌̇ ◌̈ ◌̉ ◌̊ ◌̋ ◌̌ ◌̍ ◌̎ ◌̏
U+031x ◌̐ ◌̑ ◌̒ ◌̓ ◌̔ ◌̕ ◌̖ ◌̗ ◌̘ ◌̙ ◌̚ ◌̛ ◌̜ ◌̝ ◌̞ ◌̟
U+032x ◌̠ ◌̡ ◌̢ ◌̣ ◌̤ ◌̥ ◌̦ ◌̧ ◌̨ ◌̩ ◌̪ ◌̫ ◌̬ ◌̭ ◌̮ ◌̯
U+033x ◌̰ ◌̱ ◌̲ ◌̳ ◌̴ ◌̵ ◌̶ ◌̷ ◌̸ ◌̹ ◌̺ ◌̻ ◌̼ ◌̽ ◌̾ ◌̿
U+034x ◌̀ ◌́ ◌͂ ◌̓ ◌̈́ ◌ͅ ◌͆ ◌͇ ◌͈ ◌͉ ◌͊ ◌͋ ◌͌ ◌͍ ◌͎  CGJ 
U+035x ◌͐ ◌͑ ◌͒ ◌͓ ◌͔ ◌͕ ◌͖ ◌͗ ◌͘ ◌͙ ◌͚ ◌͛ ◌͜◌ ◌͝◌ ◌͞◌ ◌͟◌
U+036x ◌͠◌ ◌͡◌ ◌͢◌ ◌ͣ ◌ͤ ◌ͥ ◌ͦ ◌ͧ ◌ͨ ◌ͩ ◌ͪ ◌ͫ ◌ͬ ◌ͭ ◌ͮ ◌ͯ
Notes
1.^ As of Unicode version 15.1

Codepoints U+032A and U+0346–034A are IPA symbols:

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 for Modern German ü.

Combining Diacritical Marks Extended[1][2]
Official Unicode Consortium code chart (PDF)
  0 1 2 3 4 5 6 7 8 9 A B C D E F
U+1ABx ◌᪰ ◌᪱ ◌᪲ ◌᪳ ◌᪴ ◌᪵ ◌᪶ ◌᪷ ◌᪸ ◌᪹ ◌᪺ ◌᪻ ◌᪼ ◌᪽ ◌᪾ ◌ᪿ
U+1ACx ◌ᫀ ◌᫁ ◌᫂ ◌᫃ ◌᫄ ◌᫅ ◌᫆ ◌᫇ ◌᫈ ◌᫉ ◌᫊ ◌᫋ ◌ᫌ ◌ᫍ ◌ᫎ
U+1ADx
U+1AEx
U+1AFx
Notes
1.^ As of Unicode version 15.1
2.^ Grey areas indicate non-assigned code points
Combining Diacritical Marks Supplement[1]
Official Unicode Consortium code chart (PDF)
  0 1 2 3 4 5 6 7 8 9 A B C D E F
U+1DCx ◌᷀ ◌᷁ ◌᷂ ◌᷃ ◌᷄ ◌᷅ ◌᷆ ◌᷇ ◌᷈ ◌᷉ ◌᷊ ◌᷋ ◌᷌ ◌᷍ ◌᷎ ◌᷏
U+1DDx ◌᷐ ◌᷑ ◌᷒ ◌ᷓ ◌ᷔ ◌ᷕ ◌ᷖ ◌ᷗ ◌ᷘ ◌ᷙ ◌ᷚ ◌ᷛ ◌ᷜ ◌ᷝ ◌ᷞ ◌ᷟ
U+1DEx ◌ᷠ ◌ᷡ ◌ᷢ ◌ᷣ ◌ᷤ ◌ᷥ ◌ᷦ ◌ᷧ ◌ᷨ ◌ᷩ ◌ᷪ ◌ᷫ ◌ᷬ ◌ᷭ ◌ᷮ ◌ᷯ
U+1DFx ◌ᷰ ◌ᷱ ◌ᷲ ◌ᷳ ◌ᷴ ◌᷵ ◌᷶ ◌᷷ ◌᷸ ◌᷹ ◌᷺ ◌᷻ ◌᷼ ◌᷽ ◌᷾ ◌᷿
Notes
1.^ As of Unicode version 15.1
Combining Diacritical Marks for Symbols[1][2]
Official Unicode Consortium code chart (PDF)
  0 1 2 3 4 5 6 7 8 9 A B C D E F
U+20Dx ◌⃐ ◌⃑ ◌⃒ ◌⃓ ◌⃔ ◌⃕ ◌⃖ ◌⃗ ◌⃘ ◌⃙ ◌⃚ ◌⃛ ◌⃜ ◌⃝ ◌⃞ ◌⃟
U+20Ex ◌⃠ ◌⃡ ◌⃢ ◌⃣ ◌⃤ ◌⃥ ◌⃦ ◌⃧ ◌⃨ ◌⃩ ◌⃪ ◌⃫ ◌⃬ ◌⃭ ◌⃮ ◌⃯
U+20Fx ◌⃰
Notes
1.^ As of Unicode version 15.1
2.^ Grey areas indicate non-assigned code points
Combining Half Marks[1]
Official Unicode Consortium code chart (PDF)
  0 1 2 3 4 5 6 7 8 9 A B C D E F
U+FE2x ◌︠ ◌︡ ◌︢ ◌︣ ◌︤ ◌︥ ◌︦ ◌︧ ◌︨ ◌︩ ◌︪ ◌︫ ◌︬ ◌︭ ◌︮ ◌︯
Notes
1.^ As of Unicode version 15.1

OpenType

[edit]

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

[edit]
A sentence of 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.[2] This is mostly used in horror contexts on the Internet. It is typically very challenging for most software to render, so the combining marks are often reduced or completely stripped off.

See also

[edit]

Notes

[edit]
  1. ^ For example, when converting between windows-1258 and VISCII, the former uses combining diacritics whilst the latter has a large selection of precomposed characters so a converter using a simple mapping between code values and Unicode code points will corrupt text when converting between them.
  2. ^ Korpela, Jukka K. "How does Zalgo text work?". Stack Overflow. Retrieved 11 April 2019.
[edit]