W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
你想將一個十六進制字符串解碼成一個字節(jié)字符串或者將一個字節(jié)字符串編碼成一個十六進制字符串。
如果你只是簡單的解碼或編碼一個十六進制的原始字符串,可以使用 binascii
模塊。例如:
>>> # Initial byte string
>>> s = b'hello'
>>> # Encode as hex
>>> import binascii
>>> h = binascii.b2a_hex(s)
>>> h
b'68656c6c6f'
>>> # Decode back to bytes
>>> binascii.a2b_hex(h)
b'hello'
>>>
類似的功能同樣可以在 base64
模塊中找到。例如:
>>> import base64
>>> h = base64.b16encode(s)
>>> h
b'68656C6C6F'
>>> base64.b16decode(h)
b'hello'
>>>
大部分情況下,通過使用上述的函數(shù)來轉(zhuǎn)換十六進制是很簡單的。上面兩種技術(shù)的主要不同在于大小寫的處理。函數(shù) base64.b16decode()
和 base64.b16encode()
只能操作大寫形式的十六進制字母,而 binascii
模塊中的函數(shù)大小寫都能處理。
還有一點需要注意的是編碼函數(shù)所產(chǎn)生的輸出總是一個字節(jié)字符串。如果想強制以Unicode形式輸出,你需要增加一個額外的界面步驟。例如:
>>> h = base64.b16encode(s)
>>> print(h)
b'68656C6C6F'
>>> print(h.decode('ascii'))
68656C6C6F
>>>
在解碼十六進制數(shù)時,函數(shù) b16decode()
和 a2b_hex()
可以接受字節(jié)或unicode字符串。但是,unicode字符串必須僅僅只包含ASCII編碼的十六進制數(shù)。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: