das leidige Thema: Zeichensatz

Plattformunabhängige GUIs mit wxWidgets.
Antworten
sprudel
User
Beiträge: 248
Registriert: Donnerstag 8. März 2007, 17:12

Dienstag 10. April 2007, 21:46

Hallo.
Ich bekomme in meinem Code folgende Fehlermeldung:

Code: Alles auswählen

Traceback (most recent call last):
  File "J:/Programmierung und Entwicklung/Python/Programmierdateien/ClickR/start.pyw", line 324, in Save_DB
    print str(klasse.List.GetText(i,2))
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)

Was muss ich da machen? Ist das eine WxWidgets-eigene Funktion, weil überall anders kann ich Umlaute verwenden. Ich kann sie auch in ein wx.StaticText schreiben.
Außerdem steht folgendes am Anfang von meinem Code:
wx.SetDefaultPyEncoding("utf-8")

Bin echt noch am verzweifeln.
joost
gelöscht
Beiträge: 134
Registriert: Sonntag 29. April 2007, 13:28

Donnerstag 3. Mai 2007, 23:28

Auf einen schnellen Blick auf den Code hin würde ich sagen, dass das Problem hier vielleicht durch das str(...) entsteht - wozu steht das eigentlich da ?
[color=green][size=75]Never use idle.pyw, if you need sys.stdin[/size][/color]
Benutzeravatar
jens
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Freitag 4. Mai 2007, 07:23

Im Ergebniss von klasse.List.GetText(i,2) kommen nicht ASCII Zeichen vor (z.B. deutsche Umlaute)... str() versucht aber nach ASCII zu wandeln und stolpert dann über nicht ASCII Zeichen...

Das Ergebniss muß erst mit dem passenden codec umgewandelt werden. Welcher das für die Sache ist, weiß ich natürlicht. i.d.R. sind latin-1 oder utf8 gute Kandidaten ;)

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten