作者Tiberius (渴望平凡的幸福)
看板Python
标题Re: [问题] utf-8的问题
时间Sun Feb 10 22:35:00 2008
※ 引述《StubbornLin (Victor)》之铭言:
: 我这连续好几天来都用pydev在开发,这个问题我也遇过
: 主要是出在於,eclipse的stdout的encoding是None
: 你可以分别在python shell里和pydev下跑
: import sys
: print sys.stdout.encoding
: 看看结果,一个是cp950一个是None,这似乎算是pydev现阶段的一个问题
: 我有找过解决方案,不过目前似乎是无解?
: 会错误是出在於,输出的字串编码因为是None的关系,所以似乎被编成了ascii
: 当然,含有中文字的字串被编成了ascii,会出错是理所当然的
: 解决的办法,就是在输出时手动加上编码
: print ("%s %s %s %s %s" % tuple(Parser.weather)).encode('cp950')
: 这样编出来之後,在pydev下就不会出问题了
: 不过手动替每个输出都这样做还蛮麻烦的,可以考虑换掉stdout
: 自己写一个,把收到的资料全部都encode成cp950再交给真正的stdout试试
: 不知道有没有人有更好的解决办法?
请去改 Python25\Lib\site.py (找 def setencoding 这段码, 把原本 if 1/0 交换)
或者是在程式里面 reload(sys); sys.setdefaultencoding(...)
现在手边没有 Eclipse, 所以不确定设定 Eclipse 的 console encoding 之後能不能
让 Python 透过现有 locale 机制判断到, 等我有空之後装起来试试看 ...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.126.63.79