python中的編碼問題

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è)文件。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 字符集和編碼簡(jiǎn)介 在編程中常常可以見到各種字符集和編碼,包括ASCII,MBCS,Unicode等字符集。確切的說...
    蘭山小亭閱讀 9,080評(píng)論 0 13
  • decode的作用是將其他編碼的字符串轉(zhuǎn)換成unicode編碼,如str1.decode('gb2312'),表示...
    心_的方向閱讀 187評(píng)論 0 0
  • python文件的編碼 v2.7 首先,encode('codec') => 把unicode轉(zhuǎn)化成其他codec...
    zhj_njuer閱讀 215評(píng)論 0 0
  • 雖然有個(gè)一般性的 UnicodeError 異常,但是報(bào)告錯(cuò)誤時(shí)幾乎都會(huì)指明具體的異常:UnicodeEncode...
    SHISHENGJIA閱讀 2,132評(píng)論 0 1
  • 幾個(gè)基本概念 bit二進(jìn)制位, 是計(jì)算機(jī)內(nèi)部數(shù)據(jù)儲(chǔ)存的最小單位,11010100是一個(gè)8位二進(jìn)制數(shù)。一個(gè)二進(jìn)制位只...
    西電大俠閱讀 3,707評(píng)論 1 8

友情鏈接更多精彩內(nèi)容