在Notepad++中使用Python在Windows命令提示符中正确显示瑞典字符
标题已经说得很清楚了。我在 Notepad++ 中设置了按 F8 键时打开 Python 脚本,并在命令提示符(CMD)中运行,但所有瑞典字符在 CMD 中显示得很乱,而在比如 IDLE 中显示得很好。
这个简单的示例代码:
#!/usr/bin/env python
#-*- coding: UTF-8 -*-
print "åäö"
看起来像 这样。
你可以看到,我用来在 CMD 中打开 Python 的批处理文件的输出显示字符是正确的,但上面的 Python 脚本却不行。我该怎么解决这个问题?我只是想让字符正确显示,不一定非要用 UTF-8。
我使用这个 方法 在 CMD 中打开文件。
更新:解决了。 在批处理文件的顶部添加了一行 "chcp 1252",然后在下面加了一行 cls 来清除关于使用什么字符编码的消息。接着我在 Python 脚本中用了 "# -- coding: cp1252 --",并把 CMD 的字体改成了 Lucida Console。这个可以通过点击 CMD 窗口右上角的 CMD 图标,然后进入属性来完成。
4 个回答
我也遇到过同样的问题,我使用了 cp1252
编码。
C:>chcp 1252
这样做后,控制台就开始使用 1252 编码,然后我运行我的程序,结果瑞典字符显示得很正常。
你正在打印UTF-8格式的字节,但你的控制台没有设置为UTF-8格式。你可以选择把Unicode写成UTF-16格式,或者把你的控制台的编码设置为UTF-8。
print u"åäö"
在Python中,通常会把Unicode字符串转换成Windows控制台能识别的编码。要正确使用Unicode,你需要用Unicode字符串(比如,u'string'),并且在文件开头加上一个coding:
的声明,告诉系统这个文件是用什么编码保存的。
举个例子,这段代码(在我的系统上以UTF-8格式保存为x.py):
# coding: utf8
print u"åäö"
运行后会得到这个结果:
C:\>chcp
Active code page: 437
C:\>x
åäö
你只能成功打印出当前编码页支持的字符。