python3中encode和decode的一些基本用法


python3中encode和decode跟python2還是有一定的區別的,在python3中: 

  encode(編碼):按照某種規則將“文本”轉換為“字節流”。  python 3中表示:unicode變成str

   decode(解碼):將“字節流”按照某種規則轉換成“文本”。   python3中表示:str變成unicode

字符串在Python內部的表示是Unicode編碼,因此在做編碼轉換時,通常需要以Unicode作為中間編碼,即先將其他編碼的字符串解碼(decode)成Unicode,再從Unicode編碼(encode)成另一種編碼。

  u代表Unicode類型,s代表str類型

  u.encode('...'):只要你填寫了正確的編碼,基本上總是能成功的。就像任何文件都可以壓縮成zip文件。

 

  u.decode('...'):沒有任何意義,因為decode是將str轉為unicode編碼,而u本身就是unicode編碼的。

 

  s.encode('...'):在python 3中,將產生一個編碼后的byte類型的字符串(這里有點像Python 2.x中的str),byte類型的字符串是支持解碼操作的。

 

  s.decode('...'):運行都會出錯。因為python 3中的str類型對象有點像Python 2中的unicode, 而decode是將str轉為unicode編碼,所以str僅有一個encode方法,調用這個方法后將產生一個編碼后的byte類型的字符。

 

按照上述規則對一般的字符編碼解碼可以基本解決,同時如果還有一些困惑可以百科一下Unicode,gbk等常用編碼格式,了解一下他們的區別和編碼原理。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM