在Notepad++中使用Python在Windows命令提示符中正确显示瑞典字符

5 投票
4 回答
10280 浏览
提问于 2025-04-15 21:44

标题已经说得很清楚了。我在 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 个回答

1

我也遇到过同样的问题,我使用了 cp1252 编码。

C:>chcp 1252

这样做后,控制台就开始使用 1252 编码,然后我运行我的程序,结果瑞典字符显示得很正常。

4

你正在打印UTF-8格式的字节,但你的控制台没有设置为UTF-8格式。你可以选择把Unicode写成UTF-16格式,或者把你的控制台的编码设置为UTF-8。

print u"åäö"
0

在Python中,通常会把Unicode字符串转换成Windows控制台能识别的编码。要正确使用Unicode,你需要用Unicode字符串(比如,u'string'),并且在文件开头加上一个coding:的声明,告诉系统这个文件是用什么编码保存的。

举个例子,这段代码(在我的系统上以UTF-8格式保存为x.py):

# coding: utf8
print u"åäö"

运行后会得到这个结果:

C:\>chcp
Active code page: 437

C:\>x
åäö

你只能成功打印出当前编码页支持的字符。

撰写回答