Python字符串本身作為bytes進行解碼的問題

問題描述

字符串本身作為 bytes

s = '\xe4\xbd\xa0\xe5\xa5\xbd'

解決方案

s.encode('raw_unicode_escape').decode()
s = '\xe4\xbd\xa0\xe5\xa5\xbd'
b = s.encode('raw_unicode_escape')
s = b.decode()
print(b)  # b'\xe4\xbd\xa0\xe5\xa5\xbd'
print(s)  # 你好

參考文獻

codecs — Python Documentation

String to Bytes Python without change in encoding

Python字符串如何轉為bytes對象?Python字符串和bytes類型怎麼互轉

在python之中字符串是最基礎的數據類型之一,而它實際上是由多個字符所連接起來組成的序列,那麼想要將字符串轉為bytes字節串就需要使用到特殊的方法瞭。本篇文章會來給大傢介紹一下python字符串是如何與bytes類型互轉的,感興趣的話就一起往下看看吧。

(1)字節指的是計算機上面用來表示存儲值的一種計量單位,但是它放在python裡面的話就是一種數據類型,這個數據類型的名稱為bytes。可以將其看做是二進制字節格式的python中表示,它顯示在python中的形式為字符串前加上小寫字母b。

而要將一個字符串轉為bytes類型需要使用到encode()函數,這個函數的意思就是編碼。隻需要在編碼方法內傳入表示中文的utf-8參數即可將其轉為bytes對象,因為這個方法的本質作用就是把python數據轉為可以通用的計算機數據格式,代碼如下:

test_str = 'my name is HanMeimei'
bytes_str = test_str.encode('utf-8')
print(bytes_str)
print(type(bytes_str))
# 結果
b'my name is HanMeimei'
<class 'bytes'>

(2)那麼要將bytes類型的對象轉為python字符串類型的話也就是使用對應的方法,該方法就是decode(),翻譯過來就是解碼的意思。它在調用是也需要傳入參數值utf-8,作用是將utf-8編碼的bytes類型數據轉為python類可以去直接解析和輸出打印顯示的字符串類型,代碼示例如下所示:

test_str = bytes_str.decode('utf-8')

到此這篇關於Python字符串本身作為bytes進行解碼的文章就介紹到這瞭,更多相關Python bytes解碼內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: