我有一个 python 脚本,可以在命令行上打印中文输出。它在 eclipse 中工作得很好。但是,当我在 dos 窗口中运行它时,它会打印 ? (问号)和垃圾字符。难道是因为big-5 vs gb编码的原因?如果是这样,我该如何控制它?
顺便说一句,我已经安装了亚洲字符集,这就是它在 Eclipse 中工作的原因
编辑:结合 chcp、encode('utf-8') 并设置非 unicode 处理程序,我现在可以看到该字符,但简单的打印会导致异常:
chcp 65001
Active code page: 65001
Z:\src>c:\Python27\python.exe mobTest.py
Traceback (most recent call last):
File "mobTest.py", line 94, in <module>
print u'哈哈'.encode('utf-8')
IOError: [Errno 13] Permission denied
最佳答案
您的系统区域设置是什么?例如,英语(美国)
使用控制台代码页 437,不支持中文字符。 中文(简体,PRC)
可以将中文打印到控制台。
您可以在控制面板 (Windows 7)、管理
选项卡和重新启动中更改区域和语言
中的设置。之后,在控制台打印 Unicode 中文字符串就可以了。您甚至可以输入中文,因为 IME 可用。
更改系统区域设置只会影响控制台和非 Unicode 程序。大多数现代程序不会注意到。
编辑:使用中国 PRC 区域并在 Windows 控制台中运行的示例:
Python 2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print u'哈哈'
哈哈
>>> import sys
>>> sys.stdout.encoding
'cp936'
使用 UTF-8 源编码的示例脚本。确保以 UTF-8 格式保存源代码,如 #coding
注释所声明:
# coding: utf-8
print u'哈哈'
print '哈哈' # this will be UTF-8 encoded, and NOT work
执行:
C:\>python x.py
哈哈
鍝堝搱
关于Python 在 dos 窗口中无法正确显示简体中文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15490050/