Unidecode looks like a complete solution. It converts fancy quotes to ascii quotes, accented latin characters to unaccented and even attempts transliteration to deal with characters that don't have ASCII equivalents. That way your users don't have to see a bunch of ? when you had to pass their text through a legacy 7-bit ascii system.
>>> from unidecode import unidecode
>>> print unidecode(u"u5317u4EB0")
Bei Jing
http://www.tablix.org/~avian/blog/archives/2009/01/unicode_transliteration_in_python/
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…