String Problem mit py2exe

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.
benny
User
Beiträge: 9
Registriert: Mittwoch 12. Dezember 2007, 16:02

String Problem mit py2exe

Beitragvon benny » Montag 16. Februar 2009, 12:05

Hallo Zusammen,

ich versuche gerade eine serielle Schnittstelle wie folgt anzusprechen (code ist etwas verkürzt):

Code: Alles auswählen

ser = serial.Serial(...)
pos = berechnePosition() # Wert von 0-100 (integer)
msg = '\x01\x02\x03' + unichr(pos) # UnicodeDecodeError Fehlermeldung
ser.write(msg)


Das Funktioniert auch wunderbar - nur nicht mit py2exe. Dort bekomme ich eine Fehlermeldung:

UnicodeDecodeError('ascii','\x01\x02\x03', 0, 1, 'ordinal not in range(128))....


Aus anderen Beiträgen habe ich schon erfahren das py2exe nicht automatisch die encodings mit einbindet. Das habe nachgeholt - allerdings scheint das hier nicht das Problem gewesen zu sein.

Hat jemand eine Ahnung was es sein könnte, oder wie ich meinen seriellen String auch anders bauen könnte?

Danke im voraus!

Benny
Benutzeravatar
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Beitragvon ms4py » Montag 16. Februar 2009, 12:24

Funktioniert vielleicht:

Code: Alles auswählen

msg = '\x01\x02\x03%d' % pos
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Beitragvon HWK » Montag 16. Februar 2009, 12:49

Schon versucht?

Code: Alles auswählen

msg = ('\x01\x02\x03' + unichr(pos)).encode('ascii')
MfG
HWK
benny
User
Beiträge: 9
Registriert: Mittwoch 12. Dezember 2007, 16:02

Beitragvon benny » Montag 16. Februar 2009, 12:59

HWK hat geschrieben:Schon versucht?

Code: Alles auswählen

msg = ('\x01\x02\x03' + unichr(pos)).encode('ascii')
MfG
HWK


jip, das wars :D

danke dir!

b.
BlackJack

Beitragvon BlackJack » Montag 16. Februar 2009, 22:06

Und was bitte ist der *Sinn* davon hier *Unicode* zu verwenden!?

Code: Alles auswählen

message = '\x01\x02\x03' + chr(pos)
# oder
message = '\x01\x02\x03%c' % pos


Und der Kommentar mit Wert von 0-100 kann irgendwie nicht stimmen, weil man dabei keinen Fehler mit Unicode bekommen dürfte.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder