python中str、bytes、十六進制字符串之間的相互轉換方法
前言
在Python中,str
(字符串)、bytes
(字節(jié)序列)以及十六進制字符串(通常以字符串形式存在,但內容表示十六進制數(shù))之間的轉換是非常常見的操作。這里將詳細說明它們之間的轉換方法。
1. str 到 bytes 的轉換
要將str
(字符串)轉換為bytes
(字節(jié)序列),可以使用str
的.encode()
方法。這個方法默認使用UTF-8編碼將字符串轉換成字節(jié)序列。
s = "hello" b = s.encode('utf-8') # 使用UTF-8編碼 print(b) # 輸出: b'hello'
如果字符串包含非ASCII字符,確保使用正確的編碼以避免UnicodeEncodeError
。
2. bytes 到 str 的轉換
將bytes
(字節(jié)序列)轉換回str
(字符串),可以使用bytes
的.decode()
方法。這個方法默認也使用UTF-8編碼。
b = b'hello' s = b.decode('utf-8') print(s) # 輸出: hello
如果bytes
數(shù)據(jù)不是用UTF-8編碼的,你需要指定正確的編碼來避免UnicodeDecodeError
。
3. str 表示的十六進制字符串到 bytes 的轉換
如果有一個十六進制字符串(即,字符串中的字符是十六進制數(shù),如"48656c6c6f"
表示"hello"
),可以使用bytes.fromhex()
方法將其轉換為bytes
。
hex_str = "48656c6c6f" b = bytes.fromhex(hex_str) print(b) # 輸出: b'hello'
4. bytes 到 十六進制字符串(str)的轉換
將bytes
轉換為十六進制字符串,可以使用bytes
的.hex()
方法。
b = b'hello' hex_str = b.hex() print(hex_str) # 輸出: 48656c6c6f
總結
- 使用
.encode()
將str
轉換為bytes
。 - 使用
.decode()
將bytes
轉換為str
。 - 使用
bytes.fromhex()
將十六進制字符串(str
)轉換為bytes
。 - 使用
.hex()
將bytes
轉換為十六進制字符串(str
)。
注意:在進行編碼和解碼操作時,應確保使用正確的字符編碼(如UTF-8),以避免出現(xiàn)編碼錯誤。
到此這篇關于python中str、bytes、十六進制字符串之間相互轉換方法的文章就介紹到這了,更多相關python中str、bytes、十六進制字符串相互轉換內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
使用python實現(xiàn)strcmp函數(shù)功能示例
這篇文章主要介紹了使用python實現(xiàn)strcmp函數(shù)功能的示例,需要的朋友可以參考下2014-03-03requests庫post方法如何傳params類型的參數(shù)(最新推薦)
在使用requests庫的post方法時,params類型的參數(shù)用于在URL中作為查詢字符串傳遞,與data或json參數(shù)不同,后者是放在請求體中的,params參數(shù)接受一個字典或包含鍵值對的序列,本文給大家介紹requests庫post方法怎么傳params類型的參數(shù),感興趣的朋友一起看看吧2025-03-03使用TensorFlow搭建一個全連接神經網(wǎng)絡教程
今天小編就為大家分享一篇使用TensorFlow搭建一個全連接神經網(wǎng)絡教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02