pythonencode_python的encode和decode误读总结
python的encode和decode誤讀總結(jié)
最近在學Python,對編碼有個誤解的地方
下面是錯誤的理解:
encode():編碼,將對象的編碼轉(zhuǎn)換為指定編碼格式,按照字面理解,一直以為是其他編碼格式轉(zhuǎn)換成unicode格式編碼
decode():解碼,是編碼的逆過程。解析破譯,把Unicode格式轉(zhuǎn)換成其他格式。
查看一些資料和其他大神的博客,才有了正確認知和理解
decode的作用是將其他編碼的字符串轉(zhuǎn)換成Unicode編碼,如str1.decode('gb2312'),表示將gb2312編碼的字符串str1轉(zhuǎn)換成Unicode編碼。
encode的作用是將unicode編碼轉(zhuǎn)換成其他編碼的字符串,如str2.encode('gb2312'),表示將Unicode編碼的字符串str2轉(zhuǎn)換成gb2312編碼。
python是個容易出現(xiàn)編碼問題的語言。所以,我按照我的理解寫下下面這些文字。
首先,要了解幾個概念。
*字節(jié):計算機數(shù)據(jù)的表示。8位二進制。可以表示無符號整數(shù):0-255。下文,用“字節(jié)流”表示“字節(jié)”組成的串。
*字符:英文字符“abc”,或者中文字符“你我他”。字符本身不知道如何在計算機中保存。下文中,會避免使用“字符串”這個詞,而用“文本”來表
示“字符”組成的串。
*編碼(動詞):按照某種規(guī)則(這個規(guī)則稱為:編碼(名詞))將“文本”轉(zhuǎn)換為“字節(jié)流”。(在python中:unicode變成str)
*解碼(動詞):將“字節(jié)流”按照某種規(guī)則轉(zhuǎn)換成“文本”。(在python中:str變成unicode)
**實際上,任何東西在計算機中表示,都需要編碼。例如,視頻要編碼然后保存在文件中,播放的時候需要解碼才能觀看。
unicode:unicode定義了,一個“字符”和一個“數(shù)字”的對應(yīng),但是并沒有規(guī)定這個“數(shù)字”在計算機中怎么保存。(就像在C中,一個整數(shù)既 可以是int,也可以是short。unicode沒有規(guī)定用int還是用short來表示一個“字符”)
utf8:unicode實現(xiàn)。它使用unicode定義的“字符”“數(shù)字”映射,進而規(guī)定了,如何在計算機中保存這個數(shù)字。其它的utf16等都是unicode實現(xiàn)。
總結(jié):
編碼是把文本(字符串)轉(zhuǎn)換成字節(jié)流,Unicode格式轉(zhuǎn)換成其他編碼格式
解碼是把字節(jié)流轉(zhuǎn)換成字符串(文本),其他編碼格式轉(zhuǎn)成Unicode
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的pythonencode_python的encode和decode误读总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简单的文件上传功能实现(java)
- 下一篇: hadoop生态搭建(3节点)-10.s