Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.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
如果我将代码页设置为cp65001,尝试使用非ascii字符时,Python3 shell在Windows上崩溃_Windows_Python 3.x_Character Encoding - Fatal编程技术网

如果我将代码页设置为cp65001,尝试使用非ascii字符时,Python3 shell在Windows上崩溃

如果我将代码页设置为cp65001,尝试使用非ascii字符时,Python3 shell在Windows上崩溃,windows,python-3.x,character-encoding,Windows,Python 3.x,Character Encoding,没有提供错误信息的崩溃,如何修复?这不是崩溃;这是Windows 7+中控制台主机进程conhost.exe中的一个错误,导致ReadFile向Python的REPL报告成功读取0字节(即文件EOF结尾)的情况,该REPL的退出方式与输入Ctrl+Z的方式相同。控制台处理的唯一多字节代码页是东亚文本的双字节代码页,即使这样,也需要重新启动Windows,并将DBCS代码页设置为系统ANSI代码页。否则,当在其本机宽字符串和ANSI API使用的代码页(即ReadFile、ReadConsoleE


没有提供错误信息的崩溃,如何修复?

这不是崩溃;这是Windows 7+中控制台主机进程conhost.exe中的一个错误,导致ReadFile向Python的REPL报告成功读取0字节(即文件EOF结尾)的情况,该REPL的退出方式与输入Ctrl+Z的方式相同。控制台处理的唯一多字节代码页是东亚文本的双字节代码页,即使这样,也需要重新启动Windows,并将DBCS代码页设置为系统ANSI代码页。否则,当在其本机宽字符串和ANSI API使用的代码页(即ReadFile、ReadConsoleEA)之间进行转换时,控制台假定每个ANSI/OEM字符有1个字节。当使用代码页65001 UTF-8(每个字符有1到4个字节)从控制台读写时,这种假设会导致几个错误。解决方案是使用本机范围的字符API ReadConsoleEW和WriteConsoleW。尝试
chcp 65001
Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:44:40) [MSC v.1600 64 bit  (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.stdin.encoding
'utf-8'
>>> s = 'ф'