Python v3.3 encode('hex') 質問する

Python v3.3 encode('hex') 質問する

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'

おすすめ記事