這篇文章主要介紹python3中utf-8編碼轉(zhuǎn)換的方法,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!
utf-8編碼將一個 unicode 字符編碼成 1~6 個字節(jié),常用的英文字母被編碼成 1 個字節(jié),漢字通常是 3 個字節(jié),只有很生僻的字符才會被編碼成 4~6 個字節(jié)。注意,從 unicode 到 utf-8 并不是直接的對應(yīng),而是通過一些算法和規(guī)則來轉(zhuǎn)換的。
來看一下具體編碼例子吧:
>>> list('中'.encode('utf-8')) [228, 184, 173] >>> list('a'.encode('utf-8')) [97]
可以看出,utf-8 將漢字 ‘中’ 編碼成了三個字節(jié),將英文字母 ‘a(chǎn)’ 編碼成了一個字節(jié),且 utf-8 編碼兼容 ASCII 編碼。
拓展:unicode 編碼
為每種語言制定一套編碼方式實(shí)在是太蠢了!為什么不能把所有語言的所有字符一起編碼呢?
把所有語言統(tǒng)一到一套編碼里,這套編碼就是 unicode 編碼。使用 unicode 編碼,無論處理什么文本都不會出現(xiàn)亂碼問題了。
unicode 編碼使用兩個字節(jié)(16 位 bit)表示一個字符,比較偏僻的字符需要使用 4 個字節(jié)。
但是新的問題又來了,如果一段純英文文本,用 unicode 編碼存儲會比用 ASCII 編碼多占用一倍空間!無論是存儲還是傳輸都很浪費(fèi)!
以上是python3中utf-8編碼轉(zhuǎn)換的方法的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!