String-Methoden und Unicode

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.
Gast

String-Methoden und Unicode

Beitragvon Gast » Donnerstag 22. September 2005, 15:24

Hallo, ich bastelle gerade an einem Programm und habe jetzt ein Problem mit Strings.
Sobald ein String ASCII Zeichen über 128 enthält lässt sich keine der stringmethoden wie split mehr anwenden. beim speichern ist es dasselbe problem.
Was muss ich machen?
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Donnerstag 22. September 2005, 15:32

Gib doch mal bitte ein Beispiel, denn das scheint bei mir durchaus zu funktionieren:

Code: Alles auswählen

In [1]: 'ö ä'.split()
Out[1]: ['\xf6', '\xe4']
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Gast

Beitragvon Gast » Donnerstag 22. September 2005, 15:43

In der Pythonshell klappt split und replace bei mir auch aber nicht im Programm, z.B. steht da :

text = text.replace("$$$", s)

text ist eine geladene datei und s irgendein string mit asciizeichen über 128

dann kommt als fehlermeldung:

UnicodeDecodeError : 'ascii ' codec cant decode byte 0xc3 in position4 : ordinal not in range(128)

in der shell kann ich den selben fehler mit dieser zeile erzeugen

>>> unicode("abc ä abc")
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Donnerstag 22. September 2005, 15:49

Geht einwandfrei:

Code: Alles auswählen

#!/usr/bin/python
# -*- encoding: latin-1 -*-

text = "äöü $$$"
text = text.replace("$$$", 'SPAMWORD')
print text


Wobei bei mir sys.defaultencoding 'ascii' ist.
My god, it's full of CARs! | Leonidasvoice vs Modvoice

Wer ist online?

Mitglieder in diesem Forum: Google [Bot]