Problem mit struct.unpack
Verfasst: Montag 4. Juli 2005, 08:25
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
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