Improve preferred encoding detection method

This commit is contained in:
Ricardo Garcia 2009-09-20 00:08:50 +02:00
parent 0833f1eb83
commit f94b636c3e

View file

@ -33,15 +33,15 @@ def preferredencoding():
Returns the best encoding scheme for the system, based on
locale.getpreferredencoding() and some further tweaks.
"""
def yield_preferredencoding():
try:
pref = locale.getpreferredencoding()
# Mac OSX systems have this problem sometimes
if pref == '':
return 'UTF-8'
return pref
u'TEST'.encode(pref)
except:
sys.stderr.write('WARNING: problem obtaining preferred encoding. Falling back to UTF-8.\n')
return 'UTF-8'
pref = 'UTF-8'
while True:
yield pref
return yield_preferredencoding().next()
class DownloadError(Exception):
"""Download Error exception.