Python 在 dos 窗口中无法正确显示简体中文

标签 python cmd

我有一个 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/

相关文章:

python - 匹配两个 Python 字符串中的字符

linux - 从 URL 下载文件的 Windows 命令

powershell - 您必须在 '-' 运算符之后提供值表达式

logging - 命令窗口中更多行

encoding - 这个批处理文件中°、±&²是如何产生░、▒&▓的?

java - 如何在没有 testng/maven 的情况下从命令行运行 selenium webdriver 测试用例

python - 是否可以在 Tensorflow 中输入动态形状矩阵?

Python:通过数据框进行转换或融化和分组

python - "import package"的目的是什么?

Python itertools.combinations() 内存问题