python為了解決程式編碼問題,只要把程式裡的字串都編成unicode(萬國碼),在輸出的時候就可以轉成任意編碼輸出;例如把字串編成utf-8:
message = "我是中文"
message = message.decode('big5')
message = message.encode('utf-8')
在台灣日文漢字及惡名昭彰的「unicode補完計畫」泛濫下,decode時會遇到UnicodeDecodeError的錯誤(因為有些字的編碼不在標準big5裡、例如 "裏")會讓程式停下來,這時可以用個參數避開這個問題:
message = "我是中文"
message = message.decode('big5','replace')
message = message.encode('utf-8')
這是把預設(’strict’)遇到錯誤時raise UnicodeDecodeError,改成把錯誤的字元標成方格(應該是),這樣就可以讓程式繼續執行下去。參數除了 "replace" 外,還可以用 "ignore" 忽略這個字元。
最近剛好遇到這個問題,就筆記一下。
參考自 http://www.dotblogs.com.tw/chris0920/archive/2010/10/22/18513.aspx
文章標籤
全站熱搜
