title: Convert ambiguous unicode characters into 'canonical' characters
body: <p>I'm working on a function that accepts a unicode string (Python 2) and returns the same string with some ambiguous characters replaced with a 'canonical' version.  To give you an idea of what I mean by that here are some examples:</p>
  
  <p>'NO-BREAK SPACE' (U+00A0) is converted into 'SPACE' (U+0020)
  'RIGHT SINGLE QUOTATION MARK' (U+2019) is converted into 'APOSTROPHE' (U+0027)</p>
  
  <p>I don't need all unicode characters converted into ASCII, just anything that looks very similar to another character.  The intention is to simplify the converted text so that it can be more easily analyzed.  If there are no (or at least fewer) opportunities for ambiguous characters to show up.</p>
  
  <p>My current implementation simply uses <code>string.replace()</code> to execute the replacements noted above,  but I know there are other characters that should be replaced with a space, and other apostrophe-like characters that should be normalized.  Other classes of characters to be normalized are things like double quotes and hyphens.  So I'd like to avoid manually specifying every character replacement, if that's possible.</p>