diff options
author | Yen Chi Hsuan <[email protected]> | 2016-07-07 17:37:29 +0800 |
---|---|---|
committer | Yen Chi Hsuan <[email protected]> | 2016-07-07 17:37:29 +0800 |
commit | dfe5fa49aed02cf36ba9f743b11b0903554b5e56 (patch) | |
tree | ca7098dad1c9d5ebec97f3c9f9a66cbfa8a334ea /youtube_dl/compat.py | |
parent | 01a0c511ebfa56699c1f58164c679b24f7972681 (diff) | |
download | youtube-dl-dfe5fa49aed02cf36ba9f743b11b0903554b5e56.tar.gz youtube-dl-dfe5fa49aed02cf36ba9f743b11b0903554b5e56.zip |
[compat] Fix compat_shlex_split for non-ASCII input
Closes #9871
Diffstat (limited to 'youtube_dl/compat.py')
-rw-r--r-- | youtube_dl/compat.py | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/youtube_dl/compat.py b/youtube_dl/compat.py index 67db1c7c6..83b96d38f 100644 --- a/youtube_dl/compat.py +++ b/youtube_dl/compat.py @@ -1,3 +1,4 @@ +# coding: utf-8 from __future__ import unicode_literals import binascii @@ -2594,15 +2595,16 @@ except ImportError: # Python < 3.3 return "'" + s.replace("'", "'\"'\"'") + "'" -if sys.version_info >= (2, 7, 3): +try: + assert shlex.split('中文') == ['中文'] compat_shlex_split = shlex.split -else: +except (AssertionError, UnicodeWarning, UnicodeEncodeError): # Working around shlex issue with unicode strings on some python 2 # versions (see http://bugs.python.org/issue1548891) def compat_shlex_split(s, comments=False, posix=True): if isinstance(s, compat_str): s = s.encode('utf-8') - return shlex.split(s, comments, posix) + return list(map(lambda s: s.decode('utf-8'), shlex.split(s, comments, posix))) def compat_ord(c): |