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

2024-10-01 17:22:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python脚本,可以在命令行上打印中文输出。它在月蚀中工作得很好。但是,当我在dos窗口中运行它时,它会打印出来吗?(问号)和垃圾字符。可能是因为big-5vs-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

Tags: 命令行py脚本编码字符utf垃圾encode
2条回答

您的系统区域设置是什么?English (United States)例如,控制台使用代码页437,它不支持中文字符。Chinese (Simplified, PRC)可以在控制台上打印中文。在

您可以在“控制面板”(Windows 7)、Administrative选项卡的Region and Language中更改设置并重新启动。之后,在控制台上打印一个Unicode中文字符串就可以了。你甚至可以输入中文作为输入法。在

更改系统区域设置只会影响控制台和非Unicode程序。大多数现代程序不会注意到。在

编辑:使用中文区域并在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注释所声明的那样:

^{pr2}$

执行:

C:\>python x.py
哈哈
鍝堝搱

这就是我解决简体中文问题的方法:

  1. 将“区域和语言设置”下的非unicode程序的显示设置为简体中文
  2. 在python文件中添加以下行(我建议先保存备份):

    -编码:gbk--

这将取代以前的任何编码(在我的例子中是utf-8)。 代码中已经存在的任何utf-8字符串都将在gbk中重新编码。所以你必须重新输入这些行。在

现在在dos窗口和eclipse中运行将产生正确的字符。 我猜对于繁体中文来说,在Windows设置和big5中使用繁体中文也可以做类似的事情。它的测试将留给读者作为练习。在

相关问题 更多 >

    热门问题