2016-11-14 4 views
0

私はPython 3で次の質問をしています。
Python3.xの先頭にある\ xで16進数の文字列(ワード)を変換できますか?Python 3で先頭に xがある文字列(ワード)を16進数に変換する方法

例:

with integer: 
>>> x = 319 
>>> x_hex = '{0:04x}'.format(x) 

now it looks so 
>>> print(x_hex) 
013f 

and for convert in the right format: 
>>> y = bytearray.fromhex(x_hex) 

>>> print(y) 
b'\x01?' 

が今の私の質問:単語や長い数字でこれを行う方法を


私はbinascii.hexlifyツールを使用している場合、文字列は私の仕事のために間違っている:

例:

>>> word = "hello012" 
>>> word_2byte = bytes(word, encodiung='ascii') 
>>> word_hex = binascii.hexlify(word_2byte) 
>>> print(word_hex) 
b'68656c6c6f303132' 

binascii.hexlifyからの出力は正しいのですが、どのように私はこのフォーマットを得るのですか?:

b'\x68\x65\x6c\x6c\x6f\x30\x31\x32' 

はバイトに

答えて

0

エンコーディングが必要とされているすべてのです:-)任意の助けてくれてありがとう。 b'\x68'b'h'b'\x65'b'e'の間に違いは、文字列として表現はそのようになりたいなら、あなたはさらに自分自身をエンコードする必要があります

など、ありません。

>>> ''.join('\\x{:02x}'.format(c) for c in word_2byte) 
'\\x68\\x65\\x6c\\x6c\\x6f\\x30\\x31\\x32' 
+0

私はすでにこれを試しました。 しかし、どうやってHex_StringからWordを取り戻すことができますか? – Brawn1

+0

すべての "\ x"を削除し、すでに発見したことのいずれかを使用します。 –

+0

ありがとう、それです。 – Brawn1

関連する問題