diff --git a/gitinspector/gitinspector.py b/gitinspector/gitinspector.py index dd98248..f381bfd 100755 --- a/gitinspector/gitinspector.py +++ b/gitinspector/gitinspector.py @@ -104,15 +104,16 @@ def __check_python_version__(): sys.exit(_("gitinspector requires at leat Python 2.6 to run (version {0} was found).").format(python_version)) def main(): + argv = terminal.convert_command_line_to_utf8() __run__ = Runner() try: - __opts__, __args__ = optval.gnu_getopt(sys.argv[1:], "cf:F:hHlLmrTwx:", ["checkout-missing:true", "exclude=", - "file-types=", "format=", "hard:true", "help", - "list-file-types:true", "localize-output:true", - "metrics:true", "responsibilities:true", "since=", - "grading:true", "timeline:true", "until=", "version", - "weeks:true"]) + __opts__, __args__ = optval.gnu_getopt(argv[1:], "cf:F:hHlLmrTwx:", ["checkout-missing:true", "exclude=", + "file-types=", "format=", "hard:true", "help", + "list-file-types:true", "localize-output:true", + "metrics:true", "responsibilities:true", "since=", + "grading:true", "timeline:true", "until=", "version", + "weeks:true"]) for arg in __args__: __run__.repo = arg diff --git a/gitinspector/terminal.py b/gitinspector/terminal.py index 69e4c02..a75d39d 100644 --- a/gitinspector/terminal.py +++ b/gitinspector/terminal.py @@ -106,3 +106,14 @@ def get_size(): def set_stdout_encoding(): if not sys.stdout.isatty() and sys.version_info < (3,): sys.stdout = codecs.getwriter('utf-8')(sys.stdout) + +def convert_command_line_to_utf8(): + try: + argv = [] + + for arg in sys.argv: + argv.append(arg.decode(sys.stdin.encoding, "replace")) + + return argv; + except AttributeError: + return sys.argv;