是使用Python2了解的子过程/命令模块Unicode



是从子进程中的各种函数或python2的命令模块中捕获的stdout/stderr,保证为标准字符串,或者在某些条件下返回的条件下可能是可能?...如果返回了标准的Python2字符串,如果子过程输出Unicode会发生什么?

或更直接地到达点,鲁棒处理Python2子过程调用的最佳方法是什么?

,如果是python3?

,会大不相同

子过程输出将始终在Python 2中be Be Be Be Be Be Be Be Be Be Be Be Be Be Be the python 2(此处称为" str")和Python 3(此处称为" bytes")。子过程不可能输出Unicode,因为" Unicode对象"是Python内部的概念。输出始终是字节。

如果字节是文本数据的表示,那么您必须知道子程序使用什么编码,然后才能解码输出。不同的子过程可以输出不同的编码,因此这里没有一个正确的答案。

这里有一个怪异的边缘情况。如果您使用Kwarg universal_newlines=True启动子过程,则将使用locale.getpreferredencoding函数返回的编码自动解码输出。

最新更新