------------恢復內容開始------------
一、python3與python2.7在字符編碼上的差異
- python2.7 默認編碼是和所在的操作系統一致,windows 是 GBK,macOS是 utf8 ,linux是utf8
- python3 編碼統一規定默認編碼為 Unicode
二、python3中str和bytes的區別
(1)python3有兩種數據類型:str 和bytes。
1、編碼為Unicode的文本顯示為str;
2、其他編碼(比如gbk,utf8等)顯示為bytes(16進制方式表示)
(2)在python3中的encode和decode都是相對於Unicode而言的
1、encode()方法是str類型數據擁有的方法,將Unicode編碼的數據,轉換為其他編碼,作為新對象返回
2、decode()方法是bytes類型數據擁有的方法,將其他編碼的數據解碼為Unicode編碼,作為新對象返回
三、在python3中,漢字的編碼及其顯示方式
例如,輸入漢字“中文”時
編碼方式 | 編碼二進制格式 | 在屏幕中的顯示 |
Unicode | '\u4e2d\u6587' |
"中文" |
GBK | b'\xd6\xd0\xce\xc4' | b'\xd6\xd0\xce\xc4' |
UTF8 | b'\xe4\xb8\xad\xe6\x96\x87' |
b'\xe4\xb8\xad\xe6\x96\x87' |
注解 | b:代表bytes類型 ;\x代表編碼是16進制表示 ;\u表示編碼是Unicode |
另外,ASCII碼可以表示所有到的英文字符,僅占一個字節,ASCII碼表示的字符會始終以字符形式在屏幕中顯示。
四、當在python3中用open()方法打開文件的注意事項
open()方法有很多參數,其中常用的有
file:文件所在路徑及文件名
mode:
r:只讀,以text的模式打開文件
w:寫入,以文本的模式打開文件,且打開時將文件內容清空
b :以bytes的模式打開文件
a:在文件后添加內容
r+:可讀可寫,在文件已有文本的后面繼續寫入
w+:以可讀可寫方式打開文件,且打開文件時,清空文件,文件不存在則創建文件
encoding:指定解碼文件使用的‘編碼方式’,比如‘utf8’、‘gbk’等,默認使用操作系統的編碼方式。windows默認是GBK, macOS、linux默認使用utf8
------------恢復內容結束------------