91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中unicode和utf8是什么

發布時間:2021-11-25 13:45:30 來源:億速云 閱讀:261 作者:小新 欄目:大數據

這篇文章主要介紹了Python中unicode和utf8是什么,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

 

中文亂碼、unicode和utf8

 

編碼演化史

 
ASCII編碼

在很久很久以前,美國人發明了計算機,計算機只能處理數字也就是把文字轉換為8個bit也就是一個字節,8個bit最大能表示的數字為255,而[A-Z]、[a-z]、[0-9]再加上鍵盤上的一些符號正好255個,所以ASCII編碼就成為了美國人的標準編碼(用一個字節代表一個字母或者符號),正好也滿足了美國人的需求。

 
GB2312

有了上面的情況,我大中國表示不服,我們中國漢字博大精深,255個明顯是滿足不了我們的需求的,于是我們就發明了GB2312編碼(用兩個字節表示漢字),不僅包含了ASCII碼還能表示我們的中國的漢字,于是有了我們中國的例子,世界各國紛紛研究出了支持自己語言的編碼,在這種情況下多種語言混合顯示就出現了亂碼的情況了,對于這種情況就出現了unicode編碼將所有語言統一到一起。

 
unicode

unicode編碼的出現解決了多國語言展示亂碼的問題,但是unicode的解決方案在全英文文檔展示的情況下,unicode編碼會比ASCII編碼多一倍的存儲空間(unicode的編碼是16bit的,在表示ASCII編碼時是直接在前面加上8個0)相應的在傳輸的時候就多了一倍的傳輸時間,在這種情況下就出現了UTF8編碼。

 
UTF8

UTF8編碼相比于8bit的ASCII編碼和16bit的unicode編碼來說,UTF8編碼是不定長的,它可以使用兩個字節代表英文,用三個字節代表中文,UTF8這個時候優勢就很大了,在實際運用中,我們可以將文件編碼互相轉換以獲取最大化的利用內存,把文件保存在內存中我們采用內存占用更小的UTF8編碼的格式,讀寫文件時我們采用更大更全的unicode編碼,具體實例圖如下:

Python中unicode和utf8是什么  
示例圖
 

代碼演示

 
Python2.7
 
windows
Python中unicode和utf8是什么  

在python2.7中當要將字符串encode為utf8,我們需要確保之前的字符串的編碼方式為unicode,所以當字符串編碼不為unicode時,我們需要使用decode方法,而在使用decode方法時我們需要指明原有字符串的編碼格式(在windows系統中解釋器默認編碼為GB2312,Linux系統中為UTF-8編碼),所以就有了  s.decode("gb2312").encode("utf-8")。  
 
Python中unicode和utf8是什么  
decode示意圖
 
Linux

按照上面解讀,我們在Linux系統下操作如下:

Python中unicode和utf8是什么  

這里就有一個疑問既然原有系統默認的字符串編碼為utf-8,為什么不可以直接使用s.decode().encode('utf-8')?原因就是,如若不指定原有的系統編碼格式(utf-8),Linux系統下會調用python解釋器的默認編碼ASCII解析字符串,演示如下:  
 
Python中unicode和utf8是什么  

所以在根據上面的情況,在python2中出現編碼互轉的情況,可以參考下圖:  
 
Python中unicode和utf8是什么  
 
Python3.6

Python2.7和Python3.6最大的區別就是在執行Python2.7項目時,當項目中包含漢字時,需要在文件頭聲明編碼格式,否則項目中的中文顯示就是亂碼。
而在Python3中完全沒有這樣的顧慮,那是因為默認python3中全部的字符串就是unicode可以直接使用encode方法。

Python中unicode和utf8是什么  


感謝你能夠認真閱讀完這篇文章,希望小編分享的“Python中unicode和utf8是什么”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

镇远县| 临桂县| 绥阳县| 广西| 门源| 宁蒗| 榆林市| 正安县| 韶山市| 卫辉市| 松原市| 新晃| 商城县| SHOW| 自贡市| 二连浩特市| 衡水市| 沙坪坝区| 静海县| 普宁市| 车致| 南平市| 紫阳县| 屏边| 乌审旗| 公安县| 泌阳县| 汝阳县| 石渠县| 资兴市| 驻马店市| 张家界市| 卢湾区| 北辰区| 紫云| 娄底市| 华安县| 古交市| 来宾市| 长治市| 遂宁市|