to_unicode: handle new common errors

This commit is contained in:
Romain Bignon 2011-08-25 22:26:28 +02:00
commit c2e008bda1

View file

@ -104,14 +104,17 @@ def to_unicode(text):
if isinstance(text, unicode): if isinstance(text, unicode):
return text return text
if not isinstance(text, str): if not isinstance(text, str):
text = str(text) try:
text = str(text)
except UnicodeError:
return unicode(text)
try: try:
return unicode(text, 'utf-8') return unicode(text, 'utf-8')
except UnicodeError: except UnicodeError:
try: try:
return unicode(text, 'iso-8859-1') return unicode(text, 'iso-8859-15')
except UnicodeError: except UnicodeError:
return unicode(text, 'windows-1252') return unicode(text, 'windows-1252', 'replace')
def utc2local(date): def utc2local(date):