decode的作用是將其他編碼的字符串轉(zhuǎn)換成unicode編碼,如str1.decode('gb2312'),表示將gb2312編碼的字符串str1轉(zhuǎn)換成unicode編碼。
encode的作用是將unicode編碼轉(zhuǎn)換成其他編碼的字符串,如str2.encode('utf-8'),表示將unicode編碼的字符串str2轉(zhuǎn)換成utf-8編碼。
<對(duì)于普通的str類型>
str字符串,它本身存儲(chǔ)的就是字節(jié)碼。如果這段代碼是在解釋器上輸入的,那么這個(gè)s的格式就是解釋器的編碼格式,對(duì)于windows的cmd而言,就是gbk;如果將段代碼是保存后才執(zhí)行的,比如存儲(chǔ)為utf-8,那么在解釋器載入這段程序的時(shí)候,就會(huì)將s初始化為utf-8編碼。
str.encode("utf-8") 等價(jià)于 s.decode(defaultencoding).encode("utf-8")
defaultencoding設(shè)置方法:sys.setdefaultencoding('utf-8')
u = unicode("人生苦短") 等價(jià)于 u = unicode("人生苦短",defaultencoding)
str和unicode的區(qū)別
str是字節(jié)串,由unicode經(jīng)過編碼(encode)后的字節(jié)組成的
unicode才是真正意義上的字符串,由字符組成
print函數(shù)會(huì)自動(dòng)的做編碼轉(zhuǎn)換(按照文件設(shè)置的讀取編碼)
coding=<utf-8>
-- coding: utf-8 --
coding=UTF-8
是用來告訴解釋器按照什么編碼格式讀取這個(gè)文件。