Avatar billede oleoldhoj Nybegynder
19. december 2008 - 12:42 Der er 5 kommentarer og
1 løsning

Batch convertering af filer til UTF8

Jeg siddeer med en folder med en del forskellige file formater i og jeg vil gerne converterer dem alle til UTF8

jeg sidder på en winodws maskine og har en hel cygwin installeret  - hvad gør i andre ?

jeg har fundet en del små perl script - men jeg kan ikke få noget af det til at virke ...

noget gode forslag ?
Avatar billede darrich Novice
19. december 2008 - 12:52 #1
hvad formater skal du konverteres fra?
Avatar billede oleoldhoj Nybegynder
19. december 2008 - 12:57 #2
forskellige ISO formater

hvis det sker til UFT8 16 eller 64 er det også ok
Avatar billede darrich Novice
21. december 2008 - 14:20 #3
Avatar billede darrich Novice
16. februar 2009 - 14:00 #4
Husk at lukke spørgsmålet
Avatar billede oleoldhoj Nybegynder
25. juli 2010 - 01:49 #5
Gammelt spørgsmål ....

men jeg vil idag anbefale at kopier det til en linux og kører det følgende script


#!/bin/bash
echo ""

echo "cd .."
cd ..

mkdir log
chmod 777 log
echo "" > log/convertIso2utf8.sh.convert.log
echo "" > log/convertIso2utf8.sh.notHandled.log
echo "" > log/convertIso2utf8.sh.nothingDone.log
echo "" > log/dos2unix.log

echo "Starting"

# find all relavant files
for i in `find . \( -name "*.htm" -o -name "*.html" -o -name "*.php" -o -name "*.js" -o -name "*.css" \)`
do
# removes any windows signs
echo `file -i $i` >> log/dos2unix.log

if [[ `file -i $i | grep text` =~ "charset=us-ascii" ]]
  then
  echo "  us-ascii    :" - `file -i $i`
  echo `file -i $i` >> log/convertIso2utf8.sh.notHandled.log
        else

        if [[ `file $i -i | grep text` =~ "charset=utf-8" ]]
  then
          echo "  UTF8        :" - `file -i $i`
    echo `file -i $i` >> log/convertIso2utf8.sh.notHandled.log
        else

if [[ `file -i $i | grep empty` =~ "application/x-empty" ]]
  then
  echo "  empty      :" - `file -i $i`
  echo `file -i $i` >> log/convertIso2utf8.sh.notHandled.log
        else

if [[ `file -i $i | grep text` =~ "text/html" ]]
  then
  echo "  text/html  :" - `file -i $i`
  echo `file -i $i` >> log/convertIso2utf8.sh.notHandled.log
        else

if [[ `file -i $i | grep text` =~ "text/xml" ]]
  then
  echo "  text/xml    :" - `file -i $i`
  echo `file -i $i` >> log/convertIso2utf8.sh.notHandled.log
        else

if [[ `file -i $i | grep text` =~ "charset=iso-8859-1" ]]
  then
  echo "+ Converting  :" - `file -i $i`
  cat $i | iconv -f iso-8859-1 -t utf-8 > $i.tmp
  mv $i.tmp $i
  echo `file -i $i` >> log/convertIso2utf8.sh.convert.log

        else
    echo "- Not registed :" - `file -i $i`
    echo `file -i $i` >> log/convertIso2utf8.sh.nothingDone.log
        fi
        fi
        fi
  fi
  fi
  fi
done

echo "Done"
echo "Please *.log"
Avatar billede oleoldhoj Nybegynder
25. juli 2010 - 01:49 #6
.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester