Nie, używanie encode()
do hexlify nie jest miłe.
Sposób korzystania z kodeka hex
działał w języku Python 2, ponieważ można wywoływać encode()
na 8-bitowych łańcuchach w Pythonie 2, tzn. Można zakodować coś, co jest już zakodowane. To nie ma sensu. encode()
służy do kodowania ciągów Unicode w ciągi 8-bitowe, a nie do kodowania ciągów 8-bitowych jako ciągów 8-bitowych.
W języku Python 3 nie można już wywoływać encode()
na ciągach 8-bitowych, więc kodek hex
stał się bezcelowy i został usunięty.
Chociaż teoretycznie może mieć hex
kodek i używać go tak:
>>> import codecs
>>> hexlify = codecs.getencoder('hex')
>>> hexlify(b'Blaah')[0]
b'426c616168'
Korzystanie binascii jest łatwiejsze i ładniejsze:
>>> import binascii
>>> binascii.hexlify(b'Blaah')
b'426c616168'
jest http://bugs.python.org/issue7475 – jfs
Brak kodu "heksadecymalnego"! Czy jest jakiś sposób dodania tego kodeku lub metody, są dwa pliki na twoim łączu, co to robi? – iMagur
Aby przekonwertować ** liczby ** w hex, nadal możesz użyć 'hex (n)'. – JeromeJ