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

溫馨提示×

溫馨提示×

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

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

Python3編碼怎樣實現相互轉化

發布時間:2020-11-16 09:31:48 來源:億速云 閱讀:169 作者:小新 欄目:編程語言

這篇文章主要介紹了Python3編碼怎樣實現相互轉化,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

可以通過 Unicode 編碼來進行不同編碼之間的相互轉化

  • 了解 ASCIIUnicodeUTF-8GBK 這四種編碼的相關概念

  • 不同的編碼之間不能互相識別,不能相互轉化,會報錯或出現亂碼 

  • 國際通用標準:文字通過網絡傳輸、或硬盤存儲等不能使用 Unicode 編碼方式,因為 Unicode 使用的是升級版 32 位的,太費流量和空間 

  • Python3 版本中,唯獨 string 在內存中的編碼方式是 Unicode,所以字符串不能直接進行網絡傳輸及進行文件的存儲

  • bytes:也是一種數據類型,不是字節,與 string 類型就像是孿生兄弟

 

為啥要有 bytes —— bytes 內部編碼不是 Unicode 方式,因此可以進行網絡傳輸和文件的存儲

 前面提到,string 類型卻是 Unicode 方式,為啥平時我們用的是 string 而不是 bytes?——因為 bytes 的中文是 16 進制方式存在

因此,一般當需要網絡傳輸數據或者文件存儲時要考慮用 bytes 類型

s1 = "abc"
s2 = b"abc"
 
print(type(s1))     # <class 'str'>
print(type(s2))     # <class 'bytes'>

string 轉化成 bytes 的方法

######## 方法一 ########
# Unicode編碼方式的 string --> GBK編碼方式的 string --> GBK編碼方式的 bytes
# encode    編碼
# decode    解碼
 
# Python3 版本中,字符串的編碼方式就是 Unicode, 所以這里等同于 s = u"中國"
s1 = "中國"
b = s1.encode("gbk")
s2 = b.decode("gbk")
 
print(s1)           # 中國
print(b)            # b'\xd6\xd0\xb9\xfa'
print(s2)           # 中國
print(type(s1))     # <class 'str'>
print(type(b))      # <class 'bytes'>
print(type(s2))     # <class 'str'>
 
# 原因解析:首先 s1 是以 Unicode 編碼方式的 string
# 然后 b 是將 Unicode 編碼方式的 string 轉化成 GBK 編碼方式的 bytes
# 最后 s2 是將 GBK 編碼方式的 bytes 轉化成 Unicode 編碼方式的 string
 
 
######## 方法二 ########
# Unicode編碼方式的 string --> UTF-8 編碼方式的 string --> GBK編碼方式的 bytes
 
s1 = "中國"
b = s1.encode("utf-8")
s2 = b.decode("utf-8")
 
print(s1)           # 中國
print(b)            # b'\xe4\xb8\xad\xe5\x9b\xbd'
print(s2)           # 中國
print(type(s1))     # <class 'str'>
print(type(b))      # <class 'bytes'>
print(type(s2))     # <class 'str'>

強調一點:不同編碼之間只能通過 Unicode 編碼方式來相互轉化

Python3編碼怎樣實現相互轉化

感謝你能夠認真閱讀完這篇文章,希望小編分享Python3編碼怎樣實現相互轉化內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!

向AI問一下細節

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

AI

虞城县| 沛县| 炉霍县| 马公市| 浪卡子县| 大姚县| 泰安市| 和平区| 承德市| 屯昌县| 博白县| 临猗县| 婺源县| 玉屏| 宁波市| 兴文县| 石柱| 千阳县| 尼勒克县| 乐清市| 南陵县| 丹阳市| 宜都市| 孝感市| 成武县| 滁州市| 汤原县| 安新县| 贺兰县| 白朗县| 昭觉县| 延津县| 新河县| 平远县| 准格尔旗| 普格县| 仪征市| 林周县| 镶黄旗| 海口市| 久治县|