title: Normalizing Unicode
body: <p>Is there a standard way, in Python, to normalize a unicode string, so that it only comprehends the simplest unicode entities that can be used to represent it ?</p>
  
  <p>I mean, something which would translate a sequence like <code>['LATIN SMALL LETTER A', 'COMBINING ACUTE ACCENT']</code> to <code>['LATIN SMALL LETTER A WITH ACUTE']</code> ?</p>
  
  <p>See where is the problem:</p>
  
  <pre><code>&gt;&gt;&gt; import unicodedata
  &gt;&gt;&gt; char = "á"
  &gt;&gt;&gt; len(char)
  1
  &gt;&gt;&gt; [ unicodedata.name(c) for c in char ]
  ['LATIN SMALL LETTER A WITH ACUTE']
  </code></pre>
  
  <p>But now:</p>
  
  <pre><code>&gt;&gt;&gt; char = "á"
  &gt;&gt;&gt; len(char)
  2
  &gt;&gt;&gt; [ unicodedata.name(c) for c in char ]
  ['LATIN SMALL LETTER A', 'COMBINING ACUTE ACCENT']
  </code></pre>
  
  <p>I could, of course, iterate over all the chars and do manual replacements, etc., but it is not efficient, and I'm pretty sure I would miss half of the special cases, and do mistakes.</p>