All pastes #131424 Raw Edit

Unnamed

public text v1 · immutable
#131424 ·published 2006-08-14 14:12 UTC
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é")