精華區beta Python 關於我們 聯絡資訊
※ 引述《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