youtube-dl

Another place where youtube-dl lives on
git clone git://git.oshgnacknak.de/youtube-dl.git
Log | Files | Refs | README | LICENSE

commit 104aa7388a1d667877976a561d47c2b61be75f82
parent c3855d28b043ccb61ea38ef108831bd395fba4db
Author: Philipp Hagemeister <phihag@phihag.de>
Date:   Mon,  7 Apr 2014 21:40:34 +0200

Use our own encoding when writing strings

Diffstat:
Myoutube_dl/utils.py | 21+++++++--------------
1 file changed, 7 insertions(+), 14 deletions(-)

diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py @@ -917,21 +917,14 @@ def write_string(s, out=None, encoding=None): if ('b' in getattr(out, 'mode', '') or sys.version_info[0] < 3): # Python 2 lies about mode of sys.stderr - s = s.encode(encoding or preferredencoding(), 'ignore') - try: + byt = s.encode(encoding or preferredencoding(), 'ignore') + out.write(byt) + elif hasattr(out, 'buffer'): + enc = encoding or getattr(out, 'encoding', None) or preferredencoding() + byt = s.encode(enc, 'ignore') + out.buffer.write(byt) + else: out.write(s) - except UnicodeEncodeError: - # In Windows shells, this can fail even when the codec is just charmap!? - # See https://wiki.python.org/moin/PrintFails#Issue - if sys.platform == 'win32': - if not encoding and hasattr(out, 'encoding'): - encoding = out.encoding - if encoding: - b = s.encode(encoding, 'ignore').decode(encoding) - out.write(b) - else: - raise - out.flush()