您好,登錄后才能下訂單哦!
這篇文章主要介紹了Python中unicode和utf8是什么,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
在很久很久以前,美國人發明了計算機,計算機只能處理數字也就是把文字轉換為8個bit也就是一個字節,8個bit最大能表示的數字為255,而[A-Z]、[a-z]、[0-9]再加上鍵盤上的一些符號正好255個,所以ASCII編碼就成為了美國人的標準編碼(用一個字節代表一個字母或者符號),正好也滿足了美國人的需求。
有了上面的情況,我大中國表示不服,我們中國漢字博大精深,255個明顯是滿足不了我們的需求的,于是我們就發明了GB2312編碼(用兩個字節表示漢字),不僅包含了ASCII碼還能表示我們的中國的漢字,于是有了我們中國的例子,世界各國紛紛研究出了支持自己語言的編碼,在這種情況下多種語言混合顯示就出現了亂碼的情況了,對于這種情況就出現了unicode編碼將所有語言統一到一起。
unicode編碼的出現解決了多國語言展示亂碼的問題,但是unicode的解決方案在全英文文檔展示的情況下,unicode編碼會比ASCII編碼多一倍的存儲空間(unicode的編碼是16bit的,在表示ASCII編碼時是直接在前面加上8個0)相應的在傳輸的時候就多了一倍的傳輸時間,在這種情況下就出現了UTF8編碼。
UTF8編碼相比于8bit的ASCII編碼和16bit的unicode編碼來說,UTF8編碼是不定長的,它可以使用兩個字節代表英文,用三個字節代表中文,UTF8這個時候優勢就很大了,在實際運用中,我們可以將文件編碼互相轉換以獲取最大化的利用內存,把文件保存在內存中我們采用內存占用更小的UTF8編碼的格式,讀寫文件時我們采用更大更全的unicode編碼,具體實例圖如下:
s.decode("gb2312").encode("utf-8")
。
按照上面解讀,我們在Linux系統下操作如下:
Python2.7和Python3.6最大的區別就是在執行Python2.7項目時,當項目中包含漢字時,需要在文件頭聲明編碼格式,否則項目中的中文顯示就是亂碼。
而在Python3中完全沒有這樣的顧慮,那是因為默認python3中全部的字符串就是unicode可以直接使用encode方法。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Python中unicode和utf8是什么”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。