Re: [問題] utf-8的問題
※ 引述《hl4 (Zec)》之銘言:
: Traceback (most recent call last):
: File "C:\Documents and Settings\chiao\\WorkSpace\weather\src\weather.py",
: line 53, in <module>
: print "%s %s %s %s %s" % tuple(Parser.weather)
: UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3:
: ordinal not in range(128)
: 我用eclipse和pydev來執行的
: eclipse 的 console encoding 和 text file encoding 都改成 utf-8 了
: code的來源是這裡
:
: http://victorlin.serveftp.org/programming/article/?article_id=24
: 複製下來的code,用python shell直接執行倒是正確無誤
: 謝謝
我這連續好幾天來都用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試試
不知道有沒有人有更好的解決辦法?
--
VICTOR工作室 http://www.kinmen.info/vic/
程式設計教學 http://victorlin.serveftp.org/programming/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.116.64.132
討論串 (同標題文章)
Python 近期熱門文章
PTT數位生活區 即時熱門文章