diff options
| -rw-r--r-- | test/test_execution.py | 9 | ||||
| -rw-r--r-- | youtube_dl/options.py | 5 | 
2 files changed, 14 insertions, 0 deletions
| diff --git a/test/test_execution.py b/test/test_execution.py index 60df187de..f31e51558 100644 --- a/test/test_execution.py +++ b/test/test_execution.py @@ -1,4 +1,6 @@  #!/usr/bin/env python +# coding: utf-8 +  from __future__ import unicode_literals  import unittest @@ -27,5 +29,12 @@ class TestExecution(unittest.TestCase):      def test_main_exec(self):          subprocess.check_call([sys.executable, 'youtube_dl/__main__.py', '--version'], cwd=rootDir, stdout=_DEV_NULL) +    def test_cmdline_umlauts(self): +        p = subprocess.Popen( +            [sys.executable, 'youtube_dl/__main__.py', 'รค', '--version'], +            cwd=rootDir, stdout=_DEV_NULL, stderr=subprocess.PIPE) +        _, stderr = p.communicate() +        self.assertFalse(stderr) +  if __name__ == '__main__':      unittest.main() diff --git a/youtube_dl/options.py b/youtube_dl/options.py index 4e6e47d6f..35c7e5fb3 100644 --- a/youtube_dl/options.py +++ b/youtube_dl/options.py @@ -794,6 +794,11 @@ def parseOpts(overrideArguments=None):              write_string('[debug] Override config: ' + repr(overrideArguments) + '\n')      else:          command_line_conf = sys.argv[1:] +        # Workaround for Python 2.x, where argv is a byte list +        if sys.version_info < (3,): +            command_line_conf = [ +                a.decode('utf-8', 'replace') for a in command_line_conf] +          if '--ignore-config' in command_line_conf:              system_conf = []              user_conf = [] | 
