diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py index b57fd7a33..9c9320934 100644 --- a/youtube_dl/utils.py +++ b/youtube_dl/utils.py @@ -923,6 +923,9 @@ def _windows_write_string(s, out): 2: -12, } + def ucs2_len(s): + return sum((2 if ord(c) > 0xffff else 1) for c in s) + fileno = out.fileno() if fileno not in WIN_OUTPUT_IDS: return False @@ -956,10 +959,10 @@ def _windows_write_string(s, out): if not_a_console(h): return False - remaining = len(s) + remaining = ucs2_len(s) while remaining > 0: ret = WriteConsoleW( - h, s, min(len(s), 1024), ctypes.byref(written), None) + h, s, min(remaining, 1024), ctypes.byref(written), None) if ret == 0: raise OSError('Failed to write string') remaining -= written.value