Seite 1 von 1

String-Methoden und Unicode

Verfasst: Donnerstag 22. September 2005, 15:24
von Gast
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?

Verfasst: Donnerstag 22. September 2005, 15:32
von Leonidas
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']

Verfasst: Donnerstag 22. September 2005, 15:43
von Gast
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")

Verfasst: Donnerstag 22. September 2005, 15:49
von Leonidas
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.