Has HEX codec been excluded from Python 3.3? When I write the code
>>> s="Hallo"
>>> s.encode('hex')
Traceback (most recent call last):
File "<pyshell#24>", line 1, in <module>
s.encode('hex')
LookupError: unknown encoding: hex
What does that mean? I know about binascii.hexlify() but still .encode() method is nice!
Any suggestion?
No, using
encode()to hexlify isn’t nice.The way you use the
hexcodec worked in Python 2 because you can callencode()on 8-bit strings in Python 2, ie you can encode something that is already encoded. That doesn’t make sense.encode()is for encoding Unicode strings into 8-bit strings, not for encoding 8-bit strings as 8-bit strings.In Python 3 you can’t call
encode()on 8-bit strings anymore, so thehexcodec became pointless and was removed.Although you theoretically could have a
hexcodec and use it like this:Using binascii is easier and nicer: