2011年2月20日 星期日

筆記:以python 為工具透過telnet 取得文字資訊遇到的編碼問題

目前的工作模式為使用pietty ssh到linux的工作站上工作,當使用telnetlib這個module取得bbs的文字時遇到了中文會出現亂碼的問題,當更改pietty字元編碼為big5時則能夠正常顯示,才發現成大電機風之谷ptt的中文字資料均以big5編碼,若是要在pietty字元編碼設定為utf-8時能夠正常顯示,需要將中文文字資料解碼(decode)為Unicode。

#取得big5編碼之文字資料
Content = TelnetObject.read_until('abc',2)
#解碼為Unicode
Content_Unicode = Content.decode('big5')
#觀察編碼
type(Content_Unicode)
#顯示
print Content_Unicode


註:windows 底下的cmd 預設使用big5編碼中文,所以不需經過decode也能夠正常的顯示;應用程式要特別小心使用者端的平台問題。