新聞中心
我們出去國外旅游時,需要把錢轉(zhuǎn)換成當(dāng)?shù)氐呢泿挪拍芟M(fèi),如果只帶了自己的貨幣可能什么事情也做不成。在python中,不同的編碼是不能直接互通的,需要轉(zhuǎn)化后才能使用,這就是我們所說的轉(zhuǎn)化的過程。不知道最近小伙伴們有沒有遇到這方面的問題,小編未雨綢繆為大家找好了解決的方法,有需要的小伙伴趕緊看看吧。

為寧縣等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及寧縣網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站制作、成都網(wǎng)站制作、寧縣網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
可以通過 Unicode 編碼來進(jìn)行不同編碼之間的相互轉(zhuǎn)化
了解 ASCII、Unicode、UTF-8、GBK 這四種編碼的相關(guān)概念
不同的編碼之間不能互相識別,不能相互轉(zhuǎn)化,會報(bào)錯或出現(xiàn)亂碼
國際通用標(biāo)準(zhǔn):文字通過網(wǎng)絡(luò)傳輸、或硬盤存儲等不能使用 Unicode 編碼方式,因?yàn)?Unicode 使用的是升級版 32 位的,太費(fèi)流量和空間
在 Python3 版本中,唯獨(dú) string 在內(nèi)存中的編碼方式是 Unicode,所以字符串不能直接進(jìn)行網(wǎng)絡(luò)傳輸及進(jìn)行文件的存儲
bytes:也是一種數(shù)據(jù)類型,不是字節(jié),與 string 類型就像是孿生兄弟
為啥要有 bytes ?—— bytes 內(nèi)部編碼不是 Unicode 方式,因此可以進(jìn)行網(wǎng)絡(luò)傳輸和文件的存儲
前面提到,string 類型卻是 Unicode 方式,為啥平時我們用的是 string 而不是 bytes?——因?yàn)?bytes 的中文是 16 進(jìn)制方式存在
因此,一般當(dāng)需要網(wǎng)絡(luò)傳輸數(shù)據(jù)或者文件存儲時要考慮用 bytes 類型。
s1 = "abc" s2 = b"abc" print(type(s1)) #print(type(s2)) #
string 轉(zhuǎn)化成 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)) #
print(type(b)) #
print(type(s2)) #
# 原因解析:首先 s1 是以 Unicode 編碼方式的 string
# 然后 b 是將 Unicode 編碼方式的 string 轉(zhuǎn)化成 GBK 編碼方式的 bytes
# 最后 s2 是將 GBK 編碼方式的 bytes 轉(zhuǎn)化成 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)) #
print(type(b)) #
print(type(s2)) # 強(qiáng)調(diào)一點(diǎn):不同編碼之間只能通過 Unicode 編碼方式來相互轉(zhuǎn)化
以上就是Python3編碼之間相互轉(zhuǎn)化的方法。小編經(jīng)過測試后,發(fā)現(xiàn)真實(shí)有效~不知道小伙伴們的問題解決了沒有,小編期待大家的互動呀。下篇我們會帶來編碼中文件的操作,大家一定不要錯過。
當(dāng)前題目:創(chuàng)新互聯(lián)Python教程:Python3編碼如何實(shí)現(xiàn)相互轉(zhuǎn)化?
分享鏈接:http://m.fisionsoft.com.cn/article/cdpejis.html


咨詢
建站咨詢
