Hi EnTeQuAk!EnTeQuAk hat geschrieben:Code: Alles auswählen
# Inhalt einlesen r_data = open(self.project_path+data_file, 'r').read() if not isinstance(r_data, unicode): r_data = r_data.decode('iso-8859-1') else: print 'nöööö'
Ich lese gar nicht weiter, dann hier liegt schon mal ein Fehler vor.
Wenn du mit ``open`` oder mit ``file`` eine Textdatei öffnest und einliest, dann hast du kein Unicode. Du hast einen Bytestring in irgendeiner Codierung. Welche das ist, hängt primär vom verwendeten Betriebssystem und von der Ländereinstellung ab. Unter einem deutschsprachigen Windows wird das wohl "cp1252" sein. Unter einem deutschsprachigen Linux meistens "iso-8859-1(5)" oder "UTF-8". Ein paar Dateien sind unter Windows auch UTF-16-codiert, aber die sind eher selten.
Du brauchst also nicht prüfen, ob du Unicode raus bekommst, denn da kommt kein Unicode raus. Unicode wird nur intern verwendet.
Versuche also erst mal das bevorzugte Encoding raus zu bekommen:
Code: Alles auswählen
import locale
print locale.getpreferredencoding()
Code: Alles auswählen
>>> f = file("J://Ablage//irgendeinedatei.txt", "r")
>>> bytestring = f.read()
>>> unicodestring = f.read().decode(locale.getpreferredencoding())
>>> f.close()
>>>
mfg
Gerold