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?
String-Methoden und Unicode
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
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 (former) Modvoice
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")
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")
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Geht einwandfrei:
Wobei bei mir sys.defaultencoding 'ascii' ist.
Code: Alles auswählen
#!/usr/bin/python
# -*- encoding: latin-1 -*-
text = "äöü $$$"
text = text.replace("$$$", 'SPAMWORD')
print text
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice