首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在Windows 7下的命令提示符中打印字符串"Hühnchen“会导致”没有这样的文件或目录“错误?

为什么在Windows 7下的命令提示符中打印字符串"Hühnchen“会导致”没有这样的文件或目录“错误?
EN

Stack Overflow用户
提问于 2017-04-15 11:52:13
回答 1查看 103关注 0票数 0

执行以下python程序

test.py:

代码语言:javascript
复制
# -*- coding: utf-8 -*- 

print "Hühnchen"

正己人:

代码语言:javascript
复制
00000000  23 20 2d 2a 2d 20 63 6f  64 69 6e 67 3a 20 75 74  |# -*- coding: ut|
00000010  66 2d 38 20 2d 2a 2d 20  0a 0a 70 72 69 6e 74 20  |f-8 -*- ..print |
00000020  22 48 c3 bc 68 6e 63 68  65 6e 22 0a              |"H..hnchen".|

在Windows7的命令提示符中,使用代码页65001和Lucida控制台字体将导致IOError

代码语言:javascript
复制
$ python test.py
HühnchenTraceback (most recent call last):
  File "test.py", line 3, in <module>
    print "Hühnchen"
IOError: [Errno 2] No such file or directory

为了排除Windows安装的任何副作用,我在一个新的虚拟机中复制了这个问题,具体步骤如下:

  1. 在虚拟机中安装Windows7终极SP1 Build 7601 (SHA1 of ISO:36ae90defbad9d9539e649b193ae573b77a71c83)
  2. 安装python 2.7.13 64位
  3. 开放cmd.exe
  4. 将字体设置为Lucida控制台
  5. 将代码页更改为65001以支持UTF-8。
  6. 执行上面的脚本(确保文件编码为UTF-8)

同样的结果:

这里发生了什么事?

EN

回答 1

Stack Overflow用户

发布于 2017-04-15 14:32:22

因此,我可以重新创建此错误的唯一方法是在运行程序之前更改为Lucida并运行chcp 65001命令。根据这篇文章,‘在Windows 8之前,使用代码页65001的输出也会中断’1。如果你只想打印"Hühnchen“或任何来自UTF-8的字符,我认为最好的解决方案就是不要像以前那样从命令行中打印字符。当我在PyCharm CE上运行相同的代码时,它工作得很好,即使当我打开python2.7命令提示符时,它仍然可以正确地打印出来。这似乎是一个非常特殊的问题,应该可以解决。

1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43425717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档