Python中文
首页
教程
问答
标签
搜索
登录
注册
Windows cmd编码更改导致Python崩溃
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>首先,我将Windows CMD编码改为utf-8并运行Python解释器:</p> <pre><code>chcp 65001 python </code></pre> <p>然后我试着在里面打印一个unicode标记,当我这样做时,Python以一种特殊的方式崩溃(我只是在同一个窗口中得到一个cmd提示)。</p> <pre><code>>>> import sys >>> print u'ëèæîð'.encode(sys.stdin.encoding) </code></pre> <p>有什么办法可以解释为什么会发生这种事以及如何让它起作用吗?</p> <p><b>UPD</b>:<code>sys.stdin.encoding</code>返回<code>'cp65001'</code></p> <p><b>UPD2</b>:我刚刚想到,这个问题可能与utf-8使用<a href="http://en.wikipedia.org/wiki/Multi-byte_character_set" rel="noreferrer">multi-byte character set</a>这一事实有关(kcwu对此提出了很好的观点)。我试着用“windows-1250”运行整个示例,得到了“eaî?”。Windows-1250使用单个字符集,因此它适用于它理解的那些字符。但是我仍然不知道如何让utf-8在这里工作。</p> <p><b>UPD3</b>:哦,我发现它是一个<a href="http://bugs.python.org/issue1602" rel="noreferrer">known Python bug</a>。我猜Python会将cmd编码复制为'cp65001到sys.stdin.encoding,并尝试将其应用于所有输入。因为它无法理解“cp65001”,所以在任何包含非ascii字符的输入上都会崩溃。</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您想让Python编码为UTF-8吗?</p> <pre><code>>>>print u'ëèæîð'.encode('utf-8') ëèæîð </code></pre> <p>Python不会将cp65001识别为UTF-8。</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
无法使用Django/mongoengine连接到MongoDB(身份验证失败)
2 回答
无法使用Django\u mssql\u后端迁移到外部hos
2 回答
无法使用Django&Python3.4连接到MySql
8 回答
无法使用Django+nginx上载媒体文件
3 回答
无法使用Django1.6导入名称模式
4 回答
无法使用Django1.7和mongodb登录管理站点
7 回答
无法使用Djangoadmin创建项目,进程使用了错误的路径,因为我事先安装了错误的Python
4 回答
无法使用Djangockedi验证CBV中的字段
10 回答
无法使用Djangocketditor上载图像(错误400)
4 回答
无法使用Djangocron进行函数调用
1 回答
无法使用Djangofiler djang上载文件
5 回答
无法使用Djangokronos
5 回答
无法使用Djangomssql provid
5 回答
无法使用Djangomssql连接到带有Django 1.11的MS SQL Server 2016
5 回答
无法使用Djangomssq迁移Django数据库
6 回答
无法使用Djangonox创建用户
6 回答
无法使用Djangopyodb从Django查询SQL Server
8 回答
无法使用Djangopython3ldap连接到ldap
5 回答
无法使用Djangoredis连接到redis
1 回答
无法使用Django中的FK创建新表
5 回答