python中str、bytes、十六進制字符串的相互轉換方法
在Python中,str(字符串)、bytes(字節序列)以及十六進制字符串
(通常以字符串形式存在,但內容表示十六進制數)之間的轉換是非常常見的操作。
這里將詳細說明它們之間的轉換方法。
1. str 到 bytes 的轉換
要將str(字符串)轉換為bytes(字節序列),可以使用str的.encode()方法。
這個方法默認使用UTF-8編碼將字符串轉換成字節序列。
s = "hello"
b = s.encode('utf-8') # 使用UTF-8編碼
print(b) # 輸出: b'hello'
如果字符串包含非ASCII字符,確保使用正確的編碼以避免UnicodeEncodeError。
2. bytes 到 str 的轉換
將bytes(字節序列)轉換回str(字符串),可以使用bytes的.decode()方法。
這個方法默認也使用UTF-8編碼。
b = b'hello'
s = b.decode('utf-8')
print(s) # 輸出: hello
如果bytes數據不是用UTF-8編碼的,你需要指定正確的編碼來避免UnicodeDecodeError。
3. str 表示的十六進制字符串到 bytes 的轉換
如果有一個十六進制字符串(即,字符串中的字符是十六進制數,如"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),
以避免出現編碼錯誤。
————————————————
原文鏈接:https://blog.csdn.net/AOMGyz/article/details/140373240
*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。