我碰巧没有在Windows上设置Python终端中的字符编码。根据官方指南,这是小菜一碟:
# -*- coding: utf-8 -*-好的,现在测试:
print 'Русский'生产蛋糕片。做错什么了?
P.S. IDE是Visual 2010,如果有关系的话
发布于 2011-05-30 18:35:58
您应该使用unicode:
print u'Русский'或切换到python3 (默认情况下为unicode)。
发布于 2015-03-30 17:20:09
它生成mojibake,因为''是Python2中的字节字符串文本(除非使用from __future__ import unicode_literals )。您正在将utf-8字节(源代码编码)打印到使用其他字符编码的Windows控制台(如果您看到mojibake,则编码是不同的):
>>> print(u'Русский'.encode('utf-8').decode('cp866'))
╨а╤Г╤Б╤Б╨║╨╕╨╣解决方案是打印Unicode而不是@JBernardo建议。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
print(u'Русский')如果控制台编码支持西里尔字母,例如,如果它是cp866,它就能工作。
如果要将输出重定向到文件,可以使用PYTHONIOENCODING环境变量设置Python /O所使用的字符编码:
Z:\> set PYTHONIOENCODING=utf-8
Z:\> python your_script.py > output.utf-8.txt如果您想安装打印无法使用控制台编码表示的Unicode字符 (OEM代码页),那么可以安装Python包
Z:\> py -m pip install win_unicode_console
Z:\> py -m run your_script.py发布于 2015-03-30 00:47:23
如果其他人在搜索时获得此页面,最简单的方法是设置windows终端代码页。
CHCP 65001或者用电源壳启动它
powershell.exe -NoExit /c "chcp.com 65001"https://stackoverflow.com/questions/6179617
复制相似问题