fan*_*ero 2 python unicode stderr
我使用匿名管道来捕获所有stdout,然后stderr打印成一个richedit,当我使用wsprintf时它没关系,但使用多字节char的python真的让我恼火.如何将所有这些输出转换为unicode?
更新2010-01-03:
谢谢你的回复,但它似乎str.encode()唯一适用的print xxx东西,如果在期间有错误py_runxxx(),我的重定向stderr将捕获多字节字符串中的错误消息,所以有没有办法可以使python以unicode方式输出它的消息?在这篇文章中似乎有一个可用的解决方案.
我稍后再试.
首先,请记住,在Windows控制台上可能不完全支持Unicode.
下面的例子确实使蟒输出到stderr和stdout使用UTF-8 .如果您愿意,可以将其更改为其他编码.
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import codecs, sys
reload(sys)
sys.setdefaultencoding('utf-8')
print sys.getdefaultencoding()
sys.stdout = codecs.getwriter('utf8')(sys.stdout)
sys.stderr = codecs.getwriter('utf8')(sys.stderr)
print "This is an ???mp?? testing Unicode support using Arabic, Latin, Cyrillic, Greek, Hebrew and CJK code points."
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2394 次 |
| 最近记录: |