SDB:Dateien oder Dateinamen in UTF-8 Kodierung konvertieren

aus openSUSE, der freien Wissensdatenbank


Version: 9.1

Symptom

Umlaute in Dateinamen oder innerhalb einer Datei werden nicht korrekt dargestellt.

Ursache

Seit der SUSE Linux Version 9.1 ist der Systemzeichensatz per Default auf "de_DE.UTF-8" eingestellt. Auch kann es sein, dass Dateinamen von Windowsdateisystemen nicht korrekt angezeigt werden.

Lösung

Für die Umstellung auf UTF-8 Kodierung gibt es die folgenden Lösungsansätze.

Wenn Sie Probleme mit der Darstellung von Dateinamen haben, können Sie diese mit dem Script "convmv" konvertieren. Ein Aufruf sieht z.B. folgendermaßen aus:

sudo zypper in convmv

um das Skript zu installieren.

convmv --notest -r -f latin1 -t utf-8

Falls es um Dateinamen aus Windows geht, kann man deren Dateinamen folgendermaßen ändern:

convmv -r -f cp850 -t utf-8

Obiger Zeile muss ein --notest hinzugefügt werden, wenn die Änderungen auch angewendet werden sollen, ansonsten werden nur die Änderungen angezeigt. Stellen Sie sicher, dass alle Änderungen korrekt angezeigt werden, bevor Sie sie anwenden.

Wenn Sie Probleme mit dem Inhalt von Dateien haben, können Sie diese mit dem Befehl "iconv" konvertieren. Hier wäre ein Aufruf wie folgt:

iconv -f latin1 -t utf-8 dokument.txt >> dokument_neu.txt

Möchten Sie bei der ISO Kodierung bleiben, können Sie dies indem Sie im "YaST Control Center" die Spracheinstellungen bearbeiten. Öffnen Sie im "YaST Control Center" das Modul "Sprache wählen" welches unter "System" zu finden ist. Die aktuell verwendete Sprache ist nach Aufruf des Modules bereits ausgewählt. Klicken Sie hier auf "Details" und deaktivieren in dem nachfolgenden Dialog die Verwendung der UTF-8 Kodierung. Übernehmen Sie die veränderten Einstellungen und beenden YaST.


In den Release Notes der SUSE Linux Version 9.1 finden Sie zu dem beschriebenen Thema folgenden Abschnitt:

UTF-8-Kodierung als Standard

Siehe http://www.suse.de/~mfabian/suse-cjk/locales.html

Nicht-UTF-8-Dateinamen

Dateien in Dateisystemen, erstellt unter 9.0 und älteren Distributionen, verwenden (sofern nicht anders angegeben) nicht-UTF-8-Kodierung für die Dateinamen. Sollten diese Dateien andere als ASCII-Zeichen enthalten, werden sie unter SUSE LINUX 9.1 und späteren Versionen 'zerstümmelt'. Als Lösung kann das convmv-Skript verwendet werden, welches die Kodierung der Dateien nach UTF-8 umwandelt.