簡體   English   中英

編碼和解碼特定字符集

[英]encode and decode for a specific character set

打印結果沒有區別,utf-8編碼和解碼的用途是什么? 它是encode('utf8')還是encode('utf-8')?

u ='abc'
print(u)
u=u.encode('utf-8')
print(u)
uu = u.decode('utf-8')
print(uu)

str.encode將字符串(或unicode字符串)編碼為一系列字節。 在Python 3中,這是一個bytearray ,在Python 2中,它又是str (令人困惑)。 對unicode字符串進行編碼時,剩下的是字節, 而不是 unicode-請記住UTF-8不是unicode ,這是一種可以將unicode代碼點轉換為字節的編碼方法。

str.decode將使用選定的編解碼器解碼序列化的字節流,選擇適當的unicode碼點並為您提供unicode字符串。

因此,您在Python 2中所做的是: 'abc' > 'abc' > u'abc' ,在Python 3中是: 'abc' > b'abc' > 'abc' 嘗試打印repr(u)type(u) ,以查看更改之處。

utf_8可能是最經典的 ,但這並不重要。

通常,Python會先嘗試將其解碼為unicode,然后才能將其編碼回UTF-8。其中有一個編碼規定,該編碼與可應用於8位字符串的字符集無關。

例如

data = u'\u00c3'            # Unicode data
 data = data.encode('utf8')
 print data

'\xc3\x83' //the output.

在這里這里瀏覽。這會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM