title: What is the difference between ‘combining characters’ and ‘grapheme extenders’ in Unicode?
body: <p>What is the difference between <a href="http://www.unicode.org/faq/char_combmark.html" rel="nofollow">‘combining characters’</a> and <a href="http://www.unicode.org/reports/tr44/#Grapheme_Extend" rel="nofollow">‘grapheme extenders’</a> in Unicode?</p>
  
  <p>They seem to do the same thing, as far as I can tell – although the set of grapheme extenders is larger than the set of combining characters. I’m clearly missing something here. Why the distinction?</p>
  
  <hr>
  
  <h3>The Unicode Standard, Chapter 3, D52</h3>
  
  <ul>
  <li>Combining character: A character with the General Category of Combining Mark (M).</li>
  <li>Combining characters consist of <a href="http://codepoints.net/search?gc%5B%5D=Mc&amp;gc%5B%5D=Me&amp;gc%5B%5D=Mn" rel="nofollow">all characters with the General Category values of Spacing Combining Mark (Mc), Nonspacing Mark (Mn), and Enclosing Mark (Me)</a>.</li>
  <li>All characters with non-zero canonical combining class are combining characters, but the reverse is not the case: there are combining characters with a zero canonical combining class.</li>
  <li>The interpretation of private-use characters (Co) as combining characters or not is determined by the implementation.</li>
  <li>These characters are not normally used in isolation unless they are being described. They include such characters as accents, diacritics, Hebrew points, Arabic vowel signs, and Indic matras.</li>
  <li>The graphic positioning of a combining character depends on the last preceding base character, unless they are separated by a character that is neither a combining character nor either zero width joiner or zero width non- joiner. The combining character is said to apply to that base character.</li>
  <li>There may be no such base character, such as when a combining character is at the start of text or follows a control or format character—for example, a carriage return, tab, or right-left mark. In such cases, the combining characters are called isolated combining characters.</li>
  <li>With isolated combining characters or when a process is unable to perform graphical combination, a process may present a combining character without graphical combination; that is, it may present it as if it were a base character.</li>
  <li>The representative images of combining characters are depicted with a dotted circle in the code charts. When presented in graphical combination with a preceding base character, that base character is intended to appear in the position occupied by the dotted circle.</li>
  </ul>
  
  <h3>The Unicode Standard, Chapter 3, D59</h3>
  
  <ul>
  <li>Grapheme extender: A character with the property <a href="http://codepoints.net/search?Gr_Ext=1" rel="nofollow">Grapheme_Extend</a>.</li>
  <li>Grapheme extender characters consist of all nonspacing marks, zero width joiner, zero width non-joiner, U+FF9E, U+FF9F, and a small number of spacing marks.</li>
  <li>A grapheme extender can be conceived of primarily as the kind of nonspacing graphical mark that is applied above or below another spacing character.
  zero width joiner and zero width non-joiner are formally defined to be grapheme extenders so that their presence does not break up a sequence of other grapheme extenders.</li>
  <li>The small number of spacing marks that have the property Grapheme_Extend are all the second parts of a two-part combining mark.</li>
  <li>The set of characters with the Grapheme_Extend property and the set of characters with the Grapheme_Base property are disjoint, by definition.</li>
  </ul>