[Eisfair] [E-1] Umstellung auf utf-8

Thomas Bork tom at eisfair.org
Sa Mai 11 11:01:22 CEST 2013


Am 10.05.2013 23:38, schrieb Olaf Jaehrling:

> Ich glaube ja. Sind ja eigentlich nur 3 Befehle +base +samba:
> (Beispiel)
> cd /home/olaf
> convmv -f iso-8859-1 -t utf8 -r . 2>&1 | grep -v Skipping
>> /tmp/umzustellende_Dateien
> Dann die /tmp/umzustellende_Dateien durchgucken, ob einem Fehler
> auffallen. Dann
> convmv -f iso-8859-1 -t utf8 -r --notest .
[...]
> Ich hab das ebend mal so gemacht. Scheint alles sauber zu funktionieren.

So simpel ist das leider nicht.

eisfair-1 lief geraume Zeit mit de_DE at euro in LC_CTYPE. Das entspricht 
weder iso-8859-1 noch iso-8859-15.

Per Definition unterstützt iso-8859-15 Umlaute und Sonderzeichen (z.B. 
äöü), bei de_DE at euro kommt auch noch das Euro-Zeichen hinzu.
Unsere jetzige glibc setzt aber iso-8859-15 gleich mit iso-8859-15 plus 
Euro-Zeichen.

Hast Du nun also eine Datei namens öäü€.txt mit dem Inhalt öäü€.txt mit 
LC_CTYPE de_DE at euro angelegt, würde bei Deiner Art der Umstellung mit 
convmv das Euro-Zeichen im Namen unterschlagen:

referencetest26 # convmv -f iso-8859-1 -t utf8 -r *
Starting a dry run without changes...
mv "./▒▒▒.txt"  "./öäü¤.txt"
No changes to your files done. Use --notest to finally rename the files.
referencetest26 # convmv -f iso-8859-1 -t utf8 -r * --notest
mv "./▒▒▒.txt"  "./öäü¤.txt"
Ready!

Vom Inhalt ganz zu schweigen:
referencetest26 # cat öäü¤.txt
▒▒▒.txt

Der Name kommt so korrekt rüber:
referencetest26 # convmv -f iso-8859-15 -t utf8 -r *
Starting a dry run without changes...
mv "./▒▒▒.txt"  "./öäü€.txt"
No changes to your files done. Use --notest to finally rename the files.
referencetest26 # convmv -f iso-8859-15 -t utf8 -r * --notest
mv "./▒▒▒.txt"  "./öäü€.txt"
Ready!
referencetest26 # cat öäü€.txt
▒▒▒.txt

Und nun muss noch der Inhalt konvertiert werden:
referencetest26 # ls -l
total 4
-rwx------ 1 tb users 9 Apr 22  2011 öäü€.txt
referencetest26 # iconv -f iso-8859-15 -t utf-8 öäü€.txt -o öäü€.txt.utf8
referencetest26 # ls -l
total 8
-rwx------ 1 tb   users  9 Apr 22  2011 öäü€.txt
-rw-r--r-- 1 root root  14 May 11 12:57 öäü€.txt.utf8
referencetest26 # cat öäü€.txt.utf8
öäü€.txt
referencetest26 # mv -f öäü€.txt.utf8 öäü€.txt
referencetest26 # ls -l
total 4
-rw-r--r-- 1 root root 14 May 11 12:57 öäü€.txt

Und damit musst Du nun auch noch die Rechte der Datei wieder korrekt 
setzen...

-- 
der tom
[eisfair-team]


Mehr Informationen über die Mailingliste Eisfair