在像subprocess.run和subprocess.check_output这样的函数中,选项text=True (及其遗留别名universal_newlines=True)导致输出被解码为文本并转换为str,而不是返回bytes。
我知道您可以使用encoding=选择特定的输出编码。但是,在使用text=True时,我在文档中没有看到默认编码是什么。
默认编码集在哪里/如何设置,可以配置吗?
发布于 2022-10-31 01:31:40
答案实际上是在文档中,尽管有些被埋葬了:
如果指定了编码或错误,或者文本为真,则使用指定的编码和错误或
io.TextIOWrapper默认值以文本模式打开stdin、stdout和stderr的文件对象。
在指向io.TextIOWrapper文档的链接之后,您可以看到可以使用sys.getencoding()找到默认的编码,这与平台和区域设置有关。
https://stackoverflow.com/questions/74257943
复制相似问题