Umlautprobleme

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
sprudel
User
Beiträge: 250
Registriert: Donnerstag 8. März 2007, 17:12

Hallo,
ich hätte nicht gedacht dass ich mal wieder damit zu kämpfen habe, aber trotz den zwei üblichen Zeilen:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# generated by wxGlade 0.6.3 on Thu Feb 5 12:57:04 2009

import wx,os,sys,time,copy
wx.SetDefaultPyEncoding("utf8")

kommt es mir mit einer Fehlermeldung:

Code: Alles auswählen

/usr/bin/python -u  "/data/Entwicklung/LightWW/gui.py"
Traceback (most recent call last):
  File "/data/Entwicklung/LightWW/gui.py", line 1220, in ChangeName
    product.SetName(dlg.GetValue())
  File "/data/Entwicklung/LightWW/lightww.py", line 226, in SetName
    self.name = str(name)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)
Was mache ich noch falsch? Ich habe auch daran gedacht die Datei als UTF8 zu speichern, ich verstehe langsam nicht was hier nicht stimmt.
Es ist nur an dieser einen Stelle so...

LG Chris
BlackJack

Du versuchst aus einem `unicode`-Objekt ein `str`-Objekt zu machen ohne eine Kodierung anzugeben. Das geht nur solange gut, wie das `unicode`-Objekt nur Zeichen aus dem ASCII-Zeichensatz enthält.

Die besagten beiden Zeilen sagen nur was a) Python mit Unicode-Literalen aus dem Quelltext machen soll und b) was `wx` annehmen soll, wie `str`-Objekte kodiert sind, die man in die GUI rein steckt. Aus der GUI heraus, sollte man immer `unicode`-Objekte bekommen.
Antworten