2016-08-12 2 views
1

Ich versuche, eine Zeichenfolge in Hexadezimalzeichen für Zeichen zu konvertieren, aber ich kann es in Python3 nicht herausfinden.Python3 - Wie man eine Zeichenkette in hex konvertiert

In älteren Python-Versionen, was ich habe unten funktioniert:

test = "This is a test" 
for c in range(0, len(test)): 
    print("0x%s"%string_value[i].encode("hex")) 

Aber mit python3 Ich erhalte die folgende Fehlermeldung:

LookupError: 'Hex' ist keine Textkodierung; Verwenden Sie codecs.encode(), um mit beliebigen Codecs umzugehen.

Kann mir jemand helfen, mir zu sagen, wie die Umwandlung in python3 wäre.

Vielen Dank im Voraus

Antwort

2

In Python 3x Verwenden binascii statt hex:

>>> import binascii 
>>> binascii.hexlify(b'< character/string>') 
1

Wie wäre:

>>> test = "This is a test"  
>>> for c in range(0, len(test)): 
...  print("0x%x"%ord(test[c])) 
... 
0x54 
0x68 
0x69 
0x73 
0x20 
0x69 
0x73 
0x20 
0x61 
0x20 
0x74 
0x65 
0x73 
0x74 
0

Zum Drucken:

for c in test: 
    print(hex(ord(c))) 

zu konvertieren:

output = ''.join(hex(ord(c)) for c in test) 

oder ohne '0x' in der Ausgabe:

output = ''.join(hex(ord(c))[2:] for c in test) 
Verwandte Themen