python的encode和decode誤讀總結

來源:互聯網
上載者:User

標籤:文字   個數   color   使用   編碼   一個   定義   encode   字串轉換   

python的encode和decode誤讀總結



    最近在學Python,對編碼有個誤解的地方

    下面是錯誤的理解:

    encode():編碼,將對象的編碼轉換為指定編碼格式,按照字面理解,一直以為是其他編碼格式轉換成unicode格式編碼

    decode():解碼,是編碼的逆過程。解析破譯,把Unicode格式轉換成其他格式。


    查看一些資料和其他大神的部落格,才有了正確認知和理解

    decode的作用是將其他編碼的字串轉換成Unicode編碼,如str1.decode('gb2312'),表示將gb2312編碼的字串str1轉換成Unicode編碼。

    encode的作用是將unicode編碼轉換成其他編碼的字串,如str2.encode('gb2312'),表示將Unicode編碼的字串str2轉換成gb2312編碼。


    python是個容易出現編碼問題的語言。所以,我按照我的理解寫下下面這些文字。 

    首先,要瞭解幾個概念。

    *位元組:電腦資料的表示。8位二進位。可以表示不帶正負號的整數:0-255。下文,用“位元組流”表示“位元組”組成的串。 

    *字元:英文字元“abc”,或者中文字元“你我他”。字元本身不知道如何在電腦中儲存。下文中,會避免使用“字串”這個詞,而用“文本”來表 

示“字元”組成的串。 

    *編碼(動詞):按照某種規則(這個規則稱為:編碼(名詞))將“文本”轉換為“位元組流”。(在python中:unicode變成str) 

    *解碼(動詞):將“位元組流”按照某種規則轉換成“文本”。(在python中:str變成unicode) 

    **實際上,任何東西在電腦中表示,都需要編碼。例如,視頻要編碼然後儲存在檔案中,播放的時候需要解碼才能觀看。 

    unicode:unicode定義了,一個“字元”和一個“數字”的對應,但是並沒有規定這個“數字”在電腦中怎麼儲存。(就像在C中,一個整數既 可以是int,也可以是short。unicode沒有規定用int還是用short來表示一個“字元”) 

    utf8:unicode實現。它使用unicode定義的“字元”“數字”映射,進而規定了,如何在電腦中儲存這個數字。其它的utf16等都是unicode實現。 



   總結:

   編碼是把文本(字串)轉換成位元組流,Unicode格式轉換成其他編碼格式

   解碼是把位元組流轉換成字串(文本),其他編碼格式轉成Unicode


python的encode和decode誤讀總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.