Problem mit struct.unpack

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Martin
User
Beiträge: 3
Registriert: Freitag 24. Juni 2005, 14:13

Hallo zusammen,

wir haben gerade mit Python angefangen, und sind auf folgendes Problem mit struct.unpack gestoßen:

>>> import struct
>>> strBuffer = u'\x00\xf0\x00\x00\x00\x00\x00\x00'
>>> print "%r" % strBuffer
u'\x00\xf0\x00\x00\x00\x00\x00\x00'
>>> (doorOpen,) = struct.unpack("1x1B6x", strBuffer)
Traceback (most recent call last):
File "<interactive input>", line 1, in ?
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf0' in position 1: ordinal not in range(128)

Warum funktioniert das nicht mit einem "u" string ?
Wenn man ein 0x70 als zweites Byte setzt, funktionierts.

Irgendwelche Ideen ?

Gibt´s ´ne Möglichkeit den "u" string in ein "r" string zu konvertieren ?
(Hab bis jetzt nichts gefunden).

Der string strBuffer kommt aus einem Interface auf das ich kein SourceZugriff habe.

Danke im vorraus

Martin
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

U-Strings sind Unicode-Strings, die kannst du zu normalen Strings mit ustr.encode(encoding) umwandeln. R-Strings sind Raw-Strings, in denen Escape-Sequenzen nicht interpretiert werden, sie werden automatisch in Strings umgewandelt, die statt \ überall \\ haben, aber sonst sind es ganz normale Strings.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten