微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python 2.7:在Windows控制台中输出utf-8

我们说

s = u"testu0627u0644u0644u0647 u0623u0643u0628u0631u7206u767Au043Eu043Bu043Eu043Bu043E"

如果我尝试直接打印它,

>>> print s Traceback (most recent call last): File "<stdin>",line 1,in <module> UnicodeEncodeError: 'cp932' codec can't encode character u'u0627' in position 4: illegal multibyte sequence

所以我把这个控制台从Python变成了UTF-8(否则它不会理解我的input)。

import win32console win32console.SetConsoleOutputCP(65001) win32console.SetConsoleCP(65001)

然后输出编码为utf-8的string,因为Python不知道chcp 65001是UTF-8(一个已知的bug )。

dl / win32 loaderror

HBITMAP从位

如何从其他窗口代码中将已经存在的打开窗口置于其他窗口的顶部?

在Windows上安装协议缓冲区

在VB.net中dynamic添加一个用户控件

>>> print s.encode('utf-8') testالله أكبر爆発ололоTraceback (most recent call last): File "<stdin>",in <module> IOError: [Errno 0] Error

正如你所看到的,它打印成功,直到它命中一个换行符,然后它会抛出一个IOError。

以下解决方法工作:

def safe_print(str): try: print str.encode('utf-8') except: pass print >>> safe_print(s) testالله أكبر爆発ололо

但是一定有更好的办法。 有什么build议么?

在Windows XP Embedded上,禁用每个控件的C#Winforms应用程序中的右键单击(按住)

JavaFX淡出舞台并closures

无法安装JDK 7

Scrapy返回相同的信息80+次

.Net使用特殊文件夹符号

在python utf8 windows中 搜索带来的第一个结果是在Windows XP上使用UTF8打印python的问题,这个控制台描述了从Python打印Windows中的utf8的问题。

我没有在Windows上测试它,但在这里你可以得到一个小的初始化脚本为win / linux来正确设置输出编码,包括日志接口等。该模块还使输出颜色(包括更新'日志'界面)? 但是你可以很容易地把它们关掉:-)。

如何调用彩色变体:

#!/usr/bin/env python # -*- coding: utf-8 -*- from setupcon import setup_console setup_console('utf-8',False)

彩色变体:

import setupcon setupcon.setup_console() import logging #... if setupcon.ansi: logging.getLogger().addHandler(setupcon.ColoredHandler())

如果解决方案适用于您,您可以阅读这里的文档: http : //habrahabr.ru/blogs/python/117236/ ,在俄罗斯,或我/有人可以翻译它为您需求:-)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐