encoding probleme

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
Korsakov
User
Beiträge: 15
Registriert: Samstag 8. April 2006, 20:03

hi,

ich arbeite mit python 2.4.2 unter windows. habe probleme mit umlauten, insofern das ich sie nicht in eine datei schreiben kann. das parsen mit minidom aus der xml klappt mit den umlauten, lediglich das schreiben in eine datei nicht. ich bitte hiermit um eure hilfe!

PS: im forum gabs schon X beiträge dazu, allerdings konnte mir kaum einer von denen helfen, da das rauslesen von dem was ich brauche für mich als anfänger noch schwer ist.

MfG
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

Kannst du denn auch mit einer explititen Fehlermeldung dienen?
Das hilft immer sehr weiter bei Umlauten...
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Korsakov hat geschrieben:habe probleme mit umlauten
Hi Korsakov!

Vielleicht hilft dir das schon weiter: http://www.python-forum.de/topic-5095.html

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Korsakov
User
Beiträge: 15
Registriert: Samstag 8. April 2006, 20:03

@murph:

Code: Alles auswählen

Traceback (most recent call last):
  File "EnCORE", line 110, in ?
    makeCacheItems()
  File "EnCORE", line 64, in makeCacheItems
    cache.write('%s=%s\n' % (theNode, theValue))
UnicodeEncodeError: 'ascii' codec can't encode character u'\xfc' in position 66:
 ordinal not in range(128)
@gerold: das nen ich mal nen thread, danke werde ich morgen früh durchlesen :)
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

du kannst halt nicht ascii für sonderzeichen benutzen, dafür brauchst du schon was besseres wie unicode, iso-western etc.
(das weiß ich nicht genau, was du da brauchst)
BlackJack

Korsakov hat geschrieben:@murph:

Code: Alles auswählen

Traceback (most recent call last):
  File "EnCORE", line 110, in ?
    makeCacheItems()
  File "EnCORE", line 64, in makeCacheItems
    cache.write('%s=%s\n' % (theNode, theValue))
UnicodeEncodeError: 'ascii' codec can't encode character u'\xfc' in position 66:
 ordinal not in range(128)
Das Unicode-Zeichen u'\xfc', ein kleines ü, ist nicht in ASCII enthalten. Du versuchst eine Unicode-Zeichenkette in eine Datei zu schreiben d.h. die muss irgendwie kodiert werden. Wenn Du nichts anderes angibst, dann wird ASCII als Kodierung genommen und wenn die Unicode-Zeichenkette etwas enthält was sich nicht als ASCII kodieren lässt, dann kommt die Ausnahme.

Am besten öffnest Du die Datei über `codecs.open` und gibst die gewünschte Kodierung an, dann kannst Du problemlos Unicode-Zeichenketten in die Datei schreiben, solange sie nur aus Zeichen bestehen, die mit der Kodierung dargestellt werden können.
Antworten