Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
配置python流的编码_Python_Python 3.x_Windows_Python 2.7 - Fatal编程技术网

配置python流的编码

配置python流的编码,python,python-3.x,windows,python-2.7,Python,Python 3.x,Windows,Python 2.7,有没有办法(在python2和python3上)配置tmp\u stdout以使用不同的编码 (我知道在python3上有编码参数,但在python2上这是不可能的) 导入临时文件 导入系统 原始数据=sys.stdout 将tempfile.TemporaryFile(mode=“w+”)作为tmp\U标准输出: #补丁系统 sys.stdout=tmp\u stdout 打印(“Windows控制台默认为系统OEM代码页(例如西欧的850),它支持传统的DOS程序和批处理脚本,但现在没有真正

有没有办法(在python2和python3上)配置
tmp\u stdout
以使用不同的编码

(我知道在python3上有编码参数,但在python2上这是不可能的)

导入临时文件
导入系统
原始数据=sys.stdout
将tempfile.TemporaryFile(mode=“w+”)作为tmp\U标准输出:
#补丁系统
sys.stdout=tmp\u stdout

打印(“Windows控制台默认为系统OEM代码页(例如西欧的850),它支持传统的DOS程序和批处理脚本,但现在没有真正的用途。Python 3.6+使用控制台的Unicode API。在内部,这是UTF-16LE,但在缓冲区/原始层,它显示为UTF-8以实现跨平台兼容性。要在Python 2中获得类似的支持,请安装并启用

对于非控制台文件,Python 3中的默认编码是系统ANSI代码页(例如西欧的1252)。这是Windows中许多文本编辑器(如记事本)的经典默认设置。若要获得完整的Unicode范围,请使用参数
encoding='utf-8'
覆盖编码。若要在Python 2和3中支持此功能,可以包装文件描述符(即
fileno()
)使用io模块,该模块在Python 3发布(2.6+)时进行了后端口。例如:

导入系统 导入临时文件 将tempfile.TemporaryFile(mode='w+b')作为tmp: tmp_stdout=io.open(tmp.fileno(),mode='w+',encoding='utf-8',closefd=False) sys.stdout,original\u stdout=tmp\u stdout,sys.stdout 尝试:
打印(“Windows控制台默认为系统OEM代码页(例如西欧的850),它支持传统的DOS程序和批处理脚本,但现在没有真正的用途。Python 3.6+使用控制台的Unicode API。在内部,这是UTF-16LE,但在缓冲区/原始层,它显示为UTF-8以实现跨平台兼容性。要在Python 2中获得类似的支持,请安装并启用

对于非控制台文件,Python 3中的默认编码是系统ANSI代码页(例如西欧的1252)。这是Windows中许多文本编辑器(如记事本)的经典默认设置。若要获得完整的Unicode范围,请使用参数
encoding='utf-8'
覆盖编码。若要在Python 2和3中支持此功能,可以包装文件描述符(即
fileno()
)使用io模块,该模块在Python 3发布(2.6+)时进行了后端口。例如:

导入系统 导入临时文件 将tempfile.TemporaryFile(mode='w+b')作为tmp: tmp_stdout=io.open(tmp.fileno(),mode='w+',encoding='utf-8',closefd=False) sys.stdout,original\u stdout=tmp\u stdout,sys.stdout 尝试: 打印(“