[YoutubeDL] Make sure we really, really get out the encoding string

Fixes #3326
Apparently, on some platforms, even outputting this fails already.
This commit is contained in:
Philipp Hagemeister 2014-07-23 02:24:50 +02:00
parent c081b35c27
commit b0472057a3

View file

@ -1234,14 +1234,21 @@ class YoutubeDL(object):
if not self.params.get('verbose'): if not self.params.get('verbose'):
return return
write_string( encoding_str = (
'[debug] Encodings: locale %s, fs %s, out %s, pref %s\n' % ( '[debug] Encodings: locale %s, fs %s, out %s, pref %s\n' % (
locale.getpreferredencoding(), locale.getpreferredencoding(),
sys.getfilesystemencoding(), sys.getfilesystemencoding(),
sys.stdout.encoding, sys.stdout.encoding,
self.get_encoding()), self.get_encoding()))
encoding=None try:
) write_string(encoding_str, encoding=None)
except:
errmsg = 'Failed to write encoding string %r' % encoding_str
try:
sys.stdout.write(errmsg)
except:
pass
raise IOError(errmsg)
self._write_string('[debug] youtube-dl version ' + __version__ + '\n') self._write_string('[debug] youtube-dl version ' + __version__ + '\n')
try: try: