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
Problem mit struct.unpack
-
- 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