rendered paste body# -*- coding: UTF-8 -*-
from unicodedata import normalize
def any2ascii(value):
if isinstance(value, (int, long)):
return str(abs(value))
if isinstance(value, str):
try:
return unicode(value, "ascii")
except UnicodeDecodeError:
pass
for charset in ("utf-8", "latin-1"):
try:
value = unicode(value, charset)
break
except UnicodeDecodeError:
continue
elif not isinstance(value, unicode):
raise ValueError("Unable to transform type %s"
% value.__class__.__name__)
value = normalize("NFKD", value)
return value.encode('ascii','ignore')
print any2ascii( (u"Été").encode("UTF-8") )
print any2ascii( (u"Été").encode("latin-1") )
print any2ascii( "ete" )
print any2ascii(u"Été")