Textdateien in Linux nach UTF-8 konvertieren

Die Zeichenkodierung UTF-8 ist in vielen Projekten der Standard, auf den man setzen sollte. Doch was tun, wenn manchen ältere Programmteile noch in einer anderen Kodierung vorliegen, wie ISO-8859 oder einem Windows-Zeichensatz?

Wenn Sie also zum Beispiel auf ein Skript stossen, bei dem die deutschen Umlaute falsch kodiert sind, dann müssen Sie den Zeichensatz umstellen.

falscher Zeichensatz
Im Kommentar sieht man die Auswirkung des falschen Zeichensatzes

Zwar unterstützen einige Editoren oder IDEs die Umwandlung einzelner Dateien. Die komplette Konvertierung eines ganzen Unterverzeichnisbaums mit allen Programmdateien wird aber fast nie angeboten.

Haben Sie Zugriff auf ein Linux-System können Sie alle Umwandlungen bequem einzeln oder auf einen Rutsch erledigen lassen.

So konvertieren Sie unter Linux einzelne Dateien

Recode ist ein Programm für die Linux-Shell, das sich eine Textdatei vornimmt, eine Zeichensatzumwandlung durchführt und die Ausgangsdatei mit der geänderten Version überschreibt.

Angenommen, Sie haben ein PHP-Skript namens myprog.php, das noch den Zeichensatz ISO-8859-1 (Latin-1) verwendet.

Mit folgender Zeile wandeln Sie dieses Skript in das Format UTF-8 um:

recode latin-1..utf-8 myprog.php

Alle von recode unterstützten Zeichensätze erhalten Sie per

recode -l

Kennen Sie die ursprüngliche Zeichenkodierung nicht, können Sie das Linux-Tool file verwenden, das Ihnen neben dem Dateityp auch die Kodierung verrät:

file myprog.php

Treten in einer Datei Umlaute oder Sonderzeichen aus mehreren Zeichensätzen vermischt auf, kann Ihnen recode allerdings nicht helfen und Sie müssen die Probleme von Hand in Ihrem Editor auflösen.

So konvertieren Sie mehrere Dateien auf einmal

Recode selbst kann nicht mit mehreren Dateien umgehen. Zusammen mit dem Kommando find erhalten Sie aber eine Lösung, um mehrere Dateien innerhalb eines Verzeichnisbaums umzustellen.

Möchten Sie zum Beispiel alle PHP-Dateien im aktuellen Verzeichnis und seinen Unterordnern von Latin-1 nach UTF-8 konvertieren, dann schreiben Sie:

find . -name '*.php' -exec recode latin-1..utf-8 {} ;

Halt die Klappe, Alexa! 😤

So, Schluss, aus. Alexa ist abgestöpselt. Stecker aus der Dose, ab ins Regal. Warum? Weil mir das Amazon Echo dauernd reinquatscht. Und weil es mich nicht versteht.

Warum ich von einem simplen „Plop“ so begeistert bin 🎛

VCV-Rack

Ok, es ist mehr, als ein „Plop“ – es ist auch ein „Wi-UUU-Wi-UUU“ und so vieles mehr. Ich spreche von einem modularen Synthesizer. Fast hätte ich mir so ein Ding als Hardware gekauft für über 500 Euro. Doch dann habe ich ein Programm entdeckt, das einen modularen Synthesizer auf dem Computer simuliert.