Re: 請教 python 3 的字串編碼問題

Sponge Jhan
 

Hi 高老師:

Python 3 分為 str 和 bytes 二個形態
前者 str 有 encode() 把字串 Unicode 轉換成後者
後者 bytes 有 decode() 把二進位資料解出來 Unicode 字串
因此,執行編碼、解碼前要先確認自己的資料型態以免 AttributeError

如果是讀取檔案預知編碼,可以在 open 就指定如

file = open(big5text.txt", encoding="BIG5")
text = file.read() # 讀取成 str

未知編碼就要先讀取近來,再行解碼

file = open(big5text.txt", "rb")
data = file.read() # 此時為 bytes
# 用自己的方式檢查編碼,假設是 "my encoding"
text = data.decode("my encoding") # 解出 str


  sincerely yours
   Bo-cheng Jhan


在 2019年8月22日 星期四 下午3:59:15 [GMT+8], 高生旺<coscell@...> 寫道:


python 3 的字串編碼預設為 utf-8.
如果不是 utf-8, 在 python 2 可以用 decode().encode() 來轉馬,但是 python 3 沒有 decode method 請教該怎麼做?
感謝指點!



Join nvda-tw@groups.io to automatically receive all group messages.