Seite 1 von 1

encoding probleme

Verfasst: Donnerstag 18. Mai 2006, 19:18
von Korsakov
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

Verfasst: Donnerstag 18. Mai 2006, 19:26
von murph
Kannst du denn auch mit einer explititen Fehlermeldung dienen?
Das hilft immer sehr weiter bei Umlauten...

Re: encoding probleme

Verfasst: Donnerstag 18. Mai 2006, 19:36
von gerold
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
:-)

Verfasst: Donnerstag 18. Mai 2006, 19:46
von Korsakov
@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 :)

Verfasst: Donnerstag 18. Mai 2006, 20:01
von murph
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)

Verfasst: Donnerstag 18. Mai 2006, 21:43
von 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.