Use .encode() instead of str() to support unicode arguments.
str() throws an UnicodeEncodeError for code points that cannot be represented in 7-bit ASCII. This makes it impossible to use any non-ASCII characters in module arguments. Using encode('utf-8') gives the desired result.
This commit is contained in:
parent
cff4ab511c
commit
d7c6cf10c2
1 changed files with 1 additions and 1 deletions
|
@ -729,7 +729,7 @@ class Runner(object):
|
|||
complex_args_json = utils.jsonify(complex_args)
|
||||
# We force conversion of module_args to str because module_common calls shlex.split,
|
||||
# a standard library function that incorrectly handles Unicode input before Python 2.7.3.
|
||||
encoded_args = repr(str(module_args))
|
||||
encoded_args = repr(module_args.encode('utf-8'))
|
||||
encoded_lang = repr(C.DEFAULT_MODULE_LANG)
|
||||
encoded_complex = repr(complex_args_json)
|
||||
|
||||
|
|
Loading…
Reference in a new issue