#最近接觸到python的檔案讀寫與編碼解碼,非常頭疼,下面寫一下最近的思考
# 目的為:分析在ide中將中文字串以預設編碼寫入txt檔案,在windows系統下修改txt檔案的編碼,在ide中重新開啟此txt出現錯誤的原因
# ide的預設編碼是utf-8
# 系統的預設編碼是ansi
# 對於以下**
str="奧森山"
file=open(r"oythonhill.txt","w")
file.write(str)
# ide對字串"奧森山"用utf-8編碼為二進位制(
此處編碼只針對ide,需要和下面寫入檔案的編碼區分開來)
# 寫檔案由於未指定編碼,按照系統預設ansi編碼為二進位制,儲存在txt檔案中
# 瀏覽檔案時,按照預設ansi將二進位制解碼為字串,因此我們可以在txt視窗中瀏覽字串
# 此時,對於以下**
newfile=open(r"oythonhill.txt","r")
newfile=newfile.read()
print(newfile)
# 可以順利讀取txt檔案,讀取過程為:根據系統預設的ansi將儲存在txt中的二進位制解碼為字串,然後讀取
# 如果將txt以unicode編碼另存(如圖),
newfile=open(r"oythonhill.txt","r")
newfile=newfile.read()
print(newfile)
# 則不能順利讀取,會出現錯誤:unicodedecodeerror: 'gbk' codec can't decode byte 0xff in position 0: illegal multibyte sequence
# 原因是另存為操作將字串"奧森山"重新以unicode編碼為二進位制儲存,而上述python**則仍舊以預設ansi解碼,因此出現錯誤
python之編碼解碼與檔案讀寫
decode是編碼,解碼 python中各種事物以物件的形式存在 計算機中0,1要實現和人類語言的互譯,就需要由 字典 字典 被叫做編碼表。簡單來說,就是建立起人類語言和計算機語言一一對應的表。從人類語言到機器語言,我們稱之為 編碼 encode 從機器語言到人類語言,我們稱之為 解碼 decode...
python 檔案編碼 解碼
ascii ascii碼是西歐編碼的方式,採取7位編碼,所以是2 7 128,共可以表示128個字元,包括34個字元,如換行lf,回車cr等 其餘94位為英文本母和標點符號及運算符號等。gb2321 gb2312 是對 ascii 的中文擴充套件。相容ascii。編碼規定 編碼小於127的字元與as...
Python 編碼與解碼
字串型別是對人類友好的符號,但計算機只認識一種符號,那就是二進位制 binary 數,或者說是數字。為了用計算機可以理解的數字描述人類使用的字元,我們需要一張數字與字元對應的表。我們都知道在計算機中 1 byte 8bits,可以儲存 0 255共256個值,也就是說 1byte最多可以表示 256...