王依依 2009年08月29日 星期六 18:36 | 2492次浏览 | 8条评论
接昨天 切换到 Python 2.6 告别 Python 2.5 ,
logging 模块很BUG...
In [1]: import logging
In [2]: logging.warning("春哥纯爷们")
Traceback (most recent call last):
File "D:\Python26\lib\logging\__init__.py", line 773, in emit
stream.write(fs % msg.encode("UTF-8"))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xb4 in position 13: ordinal
not in range(128)
In [3]: logging.warning(u"春哥纯爷们")
WARNING:root:麓潞赂莽麓驴脪炉脙脟
---------------------------------------------------------------
无奈了. 忽然想起还有修复编码错误的一条秘笈.
In [5]: import sys
In [6]: import site # needless .
In [7]: reload(sys)
<module 'sys' (built-in)>
In [8]: sys.setdefaultencoding('gb18030')
In [9]: logging.warning("春哥纯爷们")
WARNING:root:春哥纯爷们
In [10]: logging.warning(u"春哥纯爷们")
WARNING:root:????????????????????
这样就和 python2.5 差不多了.
还是很期待 py3k, 起码不用担心编码错误.
---------------------------------------------------------------------
sys.setdefaultencoding 默认无法调用. 必须 reload 一下才行.
Zeuux © 2024
京ICP备05028076号
回复 杨昆 2009年10月21日 星期三 08:32
>>>
>>> loggi
>
WARN
还是li
回复 王依依 2009年10月22日 星期四 11:24
回复 冯喜刚 2009年10月22日 星期四 11:48
就 换Linux吧, 美眉。
回复 王依依 2009年10月22日 星期四 16:42