HEXコーデックはPython 3.3から除外されましたか?コードを書くと
>>> s="Hallo"
>>> s.encode('hex')
Traceback (most recent call last):
File "<pyshell#24>", line 1, in <module>
s.encode('hex')
LookupError: unknown encoding: hex
それはどういう意味ですか? わかっていますがbinascii.hexlify()
、それでも.encode()
この方法はいいですね!
なにか提案を?
ベストアンサー1
いいえ、encode()
ヘックス化に使用するのは良くありません。
Python 2 では、コーデックの使用方法は8 ビット文字列をhex
呼び出すことができるためencode()
、つまり、すでにエンコードされているものをエンコードできるため、Python 2 では機能しました。これは意味がありません。encode()
は、Unicode 文字列を 8 ビット文字列にエンコードするためのものであり、8 ビット文字列を 8 ビット文字列としてエンコードするためのものではありません。
encode()
Python 3 では8 ビット文字列を呼び出すことができなくなったため、hex
コーデックは無意味になり削除されました。
理論的にはコーデックを用意して次のように使用することもできますhex
。
>>> import codecs
>>> hexlify = codecs.getencoder('hex')
>>> hexlify(b'Blaah')[0]
b'426c616168'
binascii を使用する方が簡単で便利です。
>>> import binascii
>>> binascii.hexlify(b'Blaah')
b'426c616168'