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!
推薦閱讀:
- Python之string編碼問題
- Python有關Unicode UTF-8 GBK編碼問題詳解
- Python字符串編碼轉換 encode()和decode()方法詳細說明
- Python中bytes字節串和string字符串之間的轉換方法
- Python編碼規范擺脫Python編碼噩夢