首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Windows上设置Python终端编码

在Windows上设置Python终端编码
EN

Stack Overflow用户
提问于 2011-05-30 18:30:44
回答 3查看 8.4K关注 0票数 1

我碰巧没有在Windows上设置Python终端中的字符编码。根据官方指南,这是小菜一碟:

代码语言:javascript
复制
# -*- coding: utf-8 -*-

好的,现在测试:

代码语言:javascript
复制
print 'Русский'

生产蛋糕片。做错什么了?

P.S. IDE是Visual 2010,如果有关系的话

EN

回答 3

Stack Overflow用户

发布于 2011-05-30 18:35:58

您应该使用unicode:

代码语言:javascript
复制
print u'Русский'

或切换到python3 (默认情况下为unicode)。

票数 3
EN

Stack Overflow用户

发布于 2015-03-30 17:20:09

它生成mojibake,因为''是Python2中的字节字符串文本(除非使用from __future__ import unicode_literals )。您正在将utf-8字节(源代码编码)打印到使用其他字符编码的Windows控制台(如果您看到mojibake,则编码是不同的):

代码语言:javascript
复制
>>> print(u'Русский'.encode('utf-8').decode('cp866'))
╨а╤Г╤Б╤Б╨║╨╕╨╣

解决方案是打印Unicode而不是@JBernardo建议

代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
print(u'Русский')

如果控制台编码支持西里尔字母,例如,如果它是cp866,它就能工作。

如果要将输出重定向到文件,可以使用PYTHONIOENCODING环境变量设置Python /O所使用的字符编码:

代码语言:javascript
复制
Z:\> set PYTHONIOENCODING=utf-8
Z:\> python your_script.py > output.utf-8.txt

如果您想安装打印无法使用控制台编码表示的Unicode字符 (OEM代码页),那么可以安装Python包

代码语言:javascript
复制
Z:\> py -m pip install win_unicode_console
Z:\> py -m run your_script.py
票数 2
EN

Stack Overflow用户

发布于 2015-03-30 00:47:23

如果其他人在搜索时获得此页面,最简单的方法是设置windows终端代码页。

代码语言:javascript
复制
CHCP 65001

或者用电源壳启动它

代码语言:javascript
复制
powershell.exe -NoExit /c "chcp.com 65001"

来自是否有Windows命令外壳程序将显示Unicode字符?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6179617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档