python 將字節字符串轉換成十六進制字符串


想將一個十六進制字符串解碼成一個字節字符串或者將一個字節字符串編碼成一個十六進制字符串

1)只是簡單的解碼或編碼一個十六進制的原始字符串,可以使用 binascii模塊

 

>>> s = b'hello'
>>> # Encode as hex
>>> import binascii
>>> h = binascii.b2a_hex(s)
>>> h
b'68656c6c6f'
>>> binascii.a2b_hex(h)
b'hello'
>>>

 

 

2)類似的功能同樣可以在base64 模塊中找到

>>> import base64
>>> h = base64.b16encode(s)
>>> h
b'68656C6C6F'
>>> base64.b16decode(h)
b'hello'
>>>

 

3)大部分情況下,通過使用上述的函數來轉換十六進制是很簡單的。上面兩種技術的主要不同在於大小寫的處理。函數base64.b16decode() 和base64.b16encode() 只能操作大寫形式的十六進制字母,而binascii 模塊中的函數大小寫都能處理

4)還有一點需要注意的是編碼函數所產生的輸出總是一個字節字符串。如果想強制以Unicode 形式輸出,你需要增加一個額外的界面步驟

>>> h = base64.b16encode(s)
>>> print(h)
b'68656C6C6F'
>>> print(h.decode('ascii'))
68656C6C6F

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM