andreas: utf8 und iconv

guten morgen,

um meine probleme mit der falschen dateikodierung bei einem projekt in den griff zu bekommen, wollte ich gern alle php dateien mit iconv in utf8 wandeln. dafür habe ich mir folgendes script geschrieben:

---------------------------------
#!/bin/sh

Script: mk_html_du.sh

executionDir="../../www"
workingDir=pwd
cd $executionDir
for file in find . -type f -iname "\*.php" -print; do
echo $file
/usr/bin/iconv -f ISO-8859-1 -t UTF-8 $file > /var/tmp/iconv.tmp
/usr/bin/iconv -f ISO-8859-1 -t UTF-8 /var/tmp/iconv.tmp > $file
done
cd $workingDir
---------------------------------

mir ist bewusst, dass ich zweimal die gleiche operation ausführe - bei meinen testversuchen hatte es aber gerade so geklappt; einmal in eine tempdatei schreiben und dann nochmal in die originaldatei zurückschreiben (die tempdatei hatte noch keine utf8 kodierung).

leider funktioniert mein plan aber doch nicht, die dateien sind immernoch mit der codierung 'westeuropäisch' im emeditor angezeigt. weiss jemand, wo mein fehler ist?

beste grüsse,
andreas

  1. /usr/bin/iconv -f ISO-8859-1 -t UTF-8 $file > /var/tmp/iconv.tmp

    hab jetzt mal
    ...
    /usr/bin/iconv -f CP1252 -t UTF-8 $file > /var/tmp/iconv.tmp
    cp /var/tmp/iconv.tmp $file
    ...

    probiert, wodurch immerhin etwas mehr dateien konertiert wurden. sieht also soa aus, als ob iconv nur umwandelt, wenn die richtige sourcekodierung angegeben wurde...

    andreas

  2. hallo,

    so wie das aussieht, muss man die richtige sourcecodierung angeben, damit iconv konvertiert. wie kann ich (am besten via kommandozeile) die kodierung einer datei ermitteln?

    vielen dank,
    andreas