小编psy*_*hob的帖子

chcp 65001代码页导致程序终止,没有任何错误

问题
当我想在Python解释器中输入 Unicode字符时出现问题(为简单起见,我在示例中使用了a-umlaut,但我首先遇到了这个用于Farsi字符).每当我将python与chcp 65001代码页一起使用,然后尝试输入一个Unicode字符时,Python就会退出而没有任何错误.

我花了好几天试图解决这个问题无济于事.但是今天,我在python网站上发现了一个帖子,另一个在MySQL上发现了一个线程,另一个在Lua用户身上发现了这个突然退出的问题,尽管没有任何解决方案,有些说这chcp 65001本身就是破坏的.

一劳永逸地知道这个问题是与chcp设计有关还是有可能的解决方法.

重现错误

chcp 65001

Python 3.X:

Python shell

print('ä')

结果:它只是退出shell

然而,这是有效的python.exe -c "print('ä')" ,也是这样的:print('\u00e4')

结果:ä

在Luajit2.0.4中

print('ä')

结果:它只是退出shell

但这有效: print('\xc3\xa4')

到目前为止,我已经提出了这个观察结果:

  1. 使用命令提示符直接输出有效.
  2. 基于Unicode,基于十六进制的角色等效于该角色.

所以, 这不是一个Python的错误我们不能在Windows命令提示符或任何其包装像Conemu,Cmder的CLI程序直接使用Unicode字符(我用Cmder能够看到和在Windows中使用Unicode字符shell和我这样做没有任何问题).它是否正确?

python windows unicode cmd codepages

4
推荐指数
1
解决办法
2073
查看次数

标签 统计

cmd ×1

codepages ×1

python ×1

unicode ×1

windows ×1