Seite 1 von 1

UTF-8 Datei als Latin-1 öffnen?

Verfasst: Dienstag 22. April 2008, 01:42
von root_tux_linux
Hi

Hab ein kleines Problem.

Ich hab ein kleines Test-Script (nix spezielles) geschrieben das eine Datei öffnet, den Inhalt der Datei dann Zeile für Zeile liest.

Mein Problem ist nun das mein System und die Datei UTF-8 sind und das der Text der Datei jedoch auf einer Seite angezeigt werden soll die ISO-8859-1 bzw Latin-1 nutzt. Deshalb werden die Umlaute nicht korrekt angezeigt.

Nun hab ich versucht mittels codecs.open(file, 'r', 'latin-1') den Inhalt direkt in Latin-1 zu wandeln was jedoch nicht klappte, genau so wenig wie den Inhalt zu lesen und dann mittels unicode(inhalt, 'latin-1').

Gibt es irgendeine Möglichkeit Text der als UTF-8 gespeichert wurde in Latin-1 umzuwandeln damit dieser Text korrekt angezeigt wird auf einer Internetseite die Latin-1 nutzt?


PS. Ablegen der Datei auf dem Server will ich nicht, da ich diese auf dem Desktop bearbeiten will. :)

Re: UTF-8 Datei als Latin-1 öffnen?

Verfasst: Dienstag 22. April 2008, 07:54
von gerold
root_tux_linux hat geschrieben:Nun hab ich versucht mittels codecs.open(file, 'r', 'latin-1') den Inhalt direkt in Latin-1 zu wandeln
Hallo root_tux_linux!

``codecs.open`` öffnet den Text und wandelt diesen beim Auslesen nach Unicode um. Um das bewerkstelligen zu können, muss man beim Öffnen der Textdatei angeben, in welcher Codierung der Text vorliegt. Du hast es also nur verkehrt herum gemacht.

Du kannst aber auch auf ``codecs`` verzichten, die Datei normal öffnen und zeilenweise umwandeln. Dann werden auch die Zeilenendzeichen automatisch konvertiert. Denn ``codecs.open`` öffnet die Datei immer "binär".

Code: Alles auswählen

my_file = file("<dateiname>", "rU")
for utf8_line in my_file:
    iso_line = utf8_line.decode("utf-8").encode("ISO-8859-1")
Nähere Infos findest du hier:
http://www.python-forum.de/topic-5095.html

mfg
Gerold
:-)

Verfasst: Dienstag 22. April 2008, 14:02
von root_tux_linux
Danke :)

Werd ich gleich probieren ;)

Verfasst: Dienstag 22. April 2008, 18:51
von mkesper
Das Ganze funktioniert prinzipiell nicht mehr, sobald im Ursprungstext Zeichen außerhalb von Latin-1 drin sind.