python3編碼問題總結

2021-09-27 09:53:31 字數 686 閱讀 4280

python 讀取文字檔案,報出gbk問題

問題如下:

unicodedecodeerror: 'gbk' codec can't decode byte 0xaa in position 225: illegal multibyte sequence
因為如果你沒有指定開啟檔案編碼方式的話,windows預設是gbk編碼開啟(linux預設為utf-8編碼),而你的檔案是utf-8編碼,

所以有的字元gbk無法識別也就是:can't decode 某某位置的位元組碼

解決辦法就是:

指定開啟檔案的編碼方式,

with open("data.txt",'r',encoding='utf-8') as data:
題外話:因為檔案在磁碟是以二進位制的形式儲存的,人要開啟,要能看懂,必須變**能看懂的形式,這就是編碼encode,python編碼以前使用的是ascii編碼,現在都是使用的unicode編碼集(python3中str就為unicode碼),他是乙個中間碼,注意是中間碼而不是特指哪個編碼方式,utf-8 或者gbk都是unicode編碼集的變形形式。想要將乙個編碼形式的檔案變成另乙個編碼形式,就要使用中間碼unicode作為編碼形式轉換的橋梁,這就是解碼decode,解碼為中間碼unicode。

Python3編碼問題

python3最重要的進步之一就是解決了python2中字串與字元編碼的問題。python2字串的缺陷如下 而python3則把系統預設編碼設定為了 utf 8 import sys sys.getdefaultencoding utf 8 之後,文字字元和二進位制資料分別用str和bytes表示。...

python3編碼問題

編碼問題 在python3中只有兩種資料型別 1 str 編碼形式是unicode,unicode任一字元編碼都存在 2 bytes 編碼形式是十六進製制 編碼encoding utf,gbk都只是一種編碼規則,按照各自的規則進行編碼,可以存在多種編碼規則 s hello中國 在記憶體中是以unic...

python3 編碼問題

asci 碼 8 位unicode 至少兩個位元組 utf 8 為了傳輸而設計的編碼方式 用於網路傳輸 或者儲存 python2 使用ascii編碼,不支援中文 python3 使用utf 8 編碼.文字字元和二進位制資料區分得更清晰,分別用 str 和bytes 表示。文字字元全部用 str 型別...