UnicodeDecodeError: ‘utf-8’ can’t decode byte 0x90 in position 4024984: invalid start byte
UnicodeDecodeError: ‘utf-8’ can’t decode byte 0x90 in position 4024984: invalid start byte
我是 运行 一个处于完整跟踪模式的子进程,并使用 logger.info()
显示它
> std = subprocess.run(subprocess_cmd, shell=True,
> universal_newlines=True, stdout=subprocess.PIPE,
> stderr=subprocess.PIPE)
>
> all_stdout = all_stdout + std.stdout + ‘\n’ all_stderr = all_stderr +
> std.stderr + ‘\n’
>
> logger.info(‘\nstdout:\n’ + all_stdout + ‘\nstderr:\n’ + all_stderr)
但是在打印子流程时出现以下错误。
UnicodeDecodeError: 'utf-8' 编解码器无法确定位置 4024984:invalid 起始字节
中的字节 0x90
我试过将 universal_lines 设为 False,但它抛出 TypeError: must be str, not bytes.
我也试过这个 -
std = subprocess.run(subprocess_cmd, shell=True, stdout=subprocess.PIPE,
> stderr=subprocess.PIPE, env=environ, encoding=‘utf-8’)
这给了我同样的 UnicodeDecodeError。
使用编码 encoding="unicode_escape"
而不是 encoding="utf-8"
我是 运行 一个处于完整跟踪模式的子进程,并使用 logger.info()
显示它> std = subprocess.run(subprocess_cmd, shell=True, > universal_newlines=True, stdout=subprocess.PIPE, > stderr=subprocess.PIPE) > > all_stdout = all_stdout + std.stdout + ‘\n’ all_stderr = all_stderr + > std.stderr + ‘\n’ > > logger.info(‘\nstdout:\n’ + all_stdout + ‘\nstderr:\n’ + all_stderr)
但是在打印子流程时出现以下错误。
UnicodeDecodeError: 'utf-8' 编解码器无法确定位置 4024984:invalid 起始字节
中的字节 0x90我试过将 universal_lines 设为 False,但它抛出 TypeError: must be str, not bytes.
我也试过这个 - std = subprocess.run(subprocess_cmd, shell=True, stdout=subprocess.PIPE,
> stderr=subprocess.PIPE, env=environ, encoding=‘utf-8’)
这给了我同样的 UnicodeDecodeError。
使用编码 encoding="unicode_escape"
而不是 encoding="utf-8"