在 Python 3.x 中,控制台输出默认情况下应该已经使用 UTF-8 编码。但是,在某些情况下,你可能会遇到编码问题,为了确保控制台输出正确显示 UTF-8 字符,你可以采取以下几种方法:
1. 在 Python 中查看终端编码
import sys
print(sys.stdout.encoding)
2. 设置环境变量 (推荐,适用于 Windows)
这是最可靠的方法,因为它会影响整个控制台会话。
- 临时设置 (仅限当前控制台窗口):
在命令提示符或 PowerShell 中,运行以下命令:
这将把当前控制台的编码设置为 UTF-8 (代码页 65001)。chcp 65001
3. 在 Python 代码中设置 sys.stdout.reconfigure (适用于 Python 3.7+)
这种方法允许你在 Python 代码中显式地设置标准输出的编码。
import sys
import io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
# 或者使用 sys.stdout.reconfigure (Python 3.7+)
# sys.stdout.reconfigure(encoding='utf-8')
print("你好,世界!")
解释:
io.TextIOWrapper将原始的字节流sys.stdout.buffer包装成一个文本流,并指定编码为 UTF-8。sys.stdout.reconfigure(Python 3.7+) 是一个更简洁的方法,直接重新配置sys.stdout的编码。
4. 检查你的编辑器/IDE设置
确保你的代码编辑器或 IDE 也设置为使用 UTF-8 编码。否则,即使你的控制台设置正确,你的代码文件也可能使用错误的编码,导致输出乱码。
总结:
- 确保你的控制台和代码编辑器都使用 UTF-8 编码。
- 在 Windows 上,使用
chcp 65001或永久设置系统区域设置。 - 在 Python 代码中,可以使用
sys.stdout.reconfigure(Python 3.7+) 或codecs模块来显式设置输出编码。
通过以上方法,你应该能够解决 Python 控制台输出 UTF-8 字符的问题。