相关疑难解决方法(0)

Windows cmd编码更改导致Python崩溃

首先,我将Windows CMD编码更改为utf-8并运行Python解释器:

chcp 65001
python
Run Code Online (Sandbox Code Playgroud)

然后我尝试在其中打印一个unicode sting,当我这样做时,Python以一种特殊的方式崩溃(我只是在同一个窗口中得到一个cmd提示符).

>>> import sys
>>> print u'ëèæîð'.encode(sys.stdin.encoding)
Run Code Online (Sandbox Code Playgroud)

任何想法为什么会发生以及如何使它工作?

UPD:sys.stdin.encoding退货'cp65001'

UPD2:我刚才发现这个问题可能与utf-8使用多字节字符集这一事实有关(kcwu就此提出了一个很好的观点).我尝试使用'windows-1250'运行整个示例并得到'ëea?'.Windows-1250使用单字符集,因此它适用于它理解的字符.但是我仍然不知道如何让'utf-8'在这里工作.

UPD3:哦,我发现它是一个已知的Python bug.我想会发生的事情是Python将cmd编码复制为'cp65001到sys.stdin.encoding并尝试将其应用于所有输入.由于它无法理解'cp65001',因此它会在包含非ascii字符的任何输入上崩溃.

python windows unicode encoding cmd

56
推荐指数
4
解决办法
4万
查看次数

标签 统计

cmd ×1

encoding ×1

python ×1

unicode ×1

windows ×1