編碼的演變
Python編碼
python2
Python指定編碼
- 在文件頭部增加 -*-coding:utf8-*-
需知:
1.在python2默認編碼是ASCII, python3里默認是unicode
2.unicode 分為 utf-32(占4個字節),utf-16(占兩個字節),utf-8(占1-4個字節), so utf-16就是現在最常用的unicode版本, 不過在文件里存的還是utf-8,因為utf8省空間
3.在py3中encode,在轉碼的同時還會把string 變成bytes類型,decode在解碼的同時還會把bytes變回string
編碼encode解碼decode
Python2 中 decode方法
- 在Python2中decode方法可以將字符串編碼為unicode
- encode方法可以解碼為指定的編碼
s_to_unicode= s.decode("utf-8")
s.encode("gbk") 編碼為gbk
#此處要指定原始編碼
print(s.decode())
python3
- 在python3中默認編碼就為Unicode
msg = "我愛北京天安門"
#msg_gb2312 = msg.decode("utf-8").encode("gb2312")
msg_gb2312 = msg.encode("gb2312") #默認就是unicode,不用再decode,喜大普奔
gb2312_to_unicode = msg_gb2312.decode("gb2312")
gb2312_to_utf8 = msg_gb2312.decode("gb2312").encode("utf-8")