2016-08-14 6 views
0

Immer wenn ich versuche, die Unicode-Nummer von einem String mit "\ xff" zu bekommen, erhalte ich einen Fehler.Python, wie man Zeichen als Rohtext ausgibt

test = ord(str(tmp1)) 
TypeError: ord() expected a character, but string of length 4 found 

Wie kann ich dies vermeiden?

Bearbeiten - Die Ausgabe von print(repr(tmp1)) ist '\\xff'

Bearbeiten - Gibt es trotzdem Sie die Byte-Version eines Zeichens finden kann? zB 255 -> \ xff anstatt sich ÿ

+1

es ist ein String, der 4 Zeichen '\ xff' hat, nicht ein Zeichen 0xFF. –

+0

Bitte fügen Sie Ihrer Frage oder zumindest der Ausgabe von 'print (repf (tmp1)) ein wiederholbares Beispiel hinzu. –

+0

Wenn also mein Variablentest" \ xff "enthält und ich' ord (test) 'verwende, wird ein Fehler angezeigt aber wenn ich manuell 'ord (" \ xff ")' dann es funktioniert, ich denke, dies könnte sein, weil der rohe Text ist '\\ xff', so dass es nicht als ein Byte gesehen wird – aidan

Antwort

0

Sie Ihren Text kodieren

test = ord(tmp1.encode('utf-16')) 

diese Weise können Sie diesen Fehler vermeiden können.

+0

Aber dann bekomme ich' test = ord (test.encode ('utf-16')) TypeError: ord() erwartete ein Zeichen, aber String der Länge 10 gefunden 'nach der Verwendung auf' '\\ xff'' – aidan

+0

stellen Sie sicher, dass Sie nur ein Zeichen übergeben versuche, 'tmp1 [0]' anstelle von 'tmp1' zu übergeben –