Wer kennts nicht: Bei einem Distributions-Upgrade oder Migration auf eine neue Plattform ist plötzlich alles anders.
Aus ö, ä und ü wird plötzlich ein ? oder sogar eine kaum erkennbare Hieroglyphe.
Konkretes Beispiel:
Bei einem Kunden von mir, wird eine komplexe Directory- und Filestruktur mittels einem Java-Programm auf einem Windows 2003 Server erstellt, welche zum Teil Sonderzeichen und Umlaute enthalten. Diese wird anschliessend mit Secure-Copy auf einen mit UTF8-eingestellten Linux Server kopiert.
Toll: Die Applikation dadrauf erkennt natürlich nun diese Strukturen nicht mehr. Was nun? Die ganze Plattform auf non-UTF8 umstellen? Unmöglich. Vom Programmierer des Export-Jobs verlangen, innerhalb einer kurzen Zeit alle Umlaute und Sonderzeichen zu entfernen? Noch unmöglicher.
Es muss was anderes her.
Kurz im www.rootforum.de nachgefragt und prompt, nach exakt 10 Minuten hatte ich die Antwort: conmv
Dessen Help:
$ convmv
convmv 1.10 - converts filenames from one encoding to another
Copyright (C) 2003-2006 Bjoern JACKE
This program comes with ABSOLUTELY NO WARRANTY; it may be copied or modified
under the terms of the GNU General Public License version 2 as published by
the Free Software Foundation.
USAGE: convmv [options] FILE(S)
-f enc encoding *from* which should be converted
-t enc encoding *to* which should be converted
-r recursively go through directories
-i interactive mode (ask for each action)
–nfc target files will be normalization form C for UTF-8 (Linux etc.)
–nfd target files will be normalization form D for UTF-8 (OS X etc.)
–qfrom be quiet about the “from” of a rename (if it screws up your terminal e.g.)
–qto be quiet about the “to” of a rename (if it screws up your terminal e.g.)
–exec c execute command instead of rename (use #1 and #2 and see man page)
–list list all available encodings
–lowmem keep memory footprint low (see man page)
–nosmart ignore if files already seem to be UTF-8 and convert if posible
–notest actually do rename the files
–replace will replace files if they are equal
–unescape convert%20ugly%20escape%20sequences
–upper turn to upper case
–lower turn to lower case
–help print this help
Damit lassen sich in windeseile ganze Bäume konvertieren.
Kurzer Test mit
$ convmv -f latin1 -t utf8 -i Firma\ XYZ\ -\ Debi\ -\ 91128660\ -\ französisch/
Starting a dry run without changes...
mv "./Firma AAV - Debi - 91128660 - französisch" "./Firma AAV - Debi - 91128660 - französisch" (y/n) y
No changes to your files done. Use --notest to finally rename the files.
und dann gehts los!
Download und Manpage gibts hier: Klick!
Viel Erfolg…!
PS: Dabei noch einen herzlichen Dank an JoeUser, der mir bereits bei einigen komplexen oder weniger komplexen Problemen Rat und Tat stand ![]()
September 5th, 2008 at 15:36
Du hast dir deine Seite aber auch noch nie im Firefox angesehen, oder? Dort werden deutsche Umläute nämlich auch nicht korrekt dargestellt.
Gruß
Chris
September 5th, 2008 at 15:43
Ich weiss
Habe bei einem Datenbank-Export / Import nicht aufgepasst, desswegen. Kann es ohne mühsame händische Korrektur nicht ändern 