詳細文章:
http://www.cnblogs.com/yuanchenqi/articles/5956943.html
http://www.diveintopython3.net/strings.html
需知:
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
?
?上圖僅適用于py2
#-*-coding:utf-8-*-
__author__ = 'Alex Li'import sys
print(sys.getdefaultencoding())msg = "我愛北京天安門"
msg_gb2312 = msg.decode("utf-8").encode("gb2312")
gb2312_to_gbk = msg_gb2312.decode("gbk").encode("gbk")print(msg)
print(msg_gb2312)
print(gb2312_to_gbk)in python2
#-*-coding:utf-8-*-
__author__ = 'Alex Li'import sys
print(sys.getdefaultencoding())msg = "我愛北京天安門"
msg_gb2312 = msg.decode("utf-8").encode("gb2312")
gb2312_to_gbk = msg_gb2312.decode("gbk").encode("gbk")print(msg)
print(msg_gb2312)
print(gb2312_to_gbk)in python2