UTF-8 konvertering

Om man har många text-filer på sin webbplats (som finns på ett Linux-system) som behöver konverteras från någon teckenkodning till UTF-8 så kan man använda följande knep:

#!/usr/local/bin/perl
print header('text/plain;charset=UTF-8');
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8"/>

Programmet encoding_find_all_bad.sh:

for f in ./$1/*
do
  x2="$(file --mime-type "$f")"
  x21=$(echo ${x2} | cut -d ' ' -f 2)

  x3="$(file --mime-encoding "$f")"
  x31=$(echo ${x3} | cut -d ' ' -f 2)

  if [ $x31 = "unknown-8bit" ]; then
    echo "$f"
  fi

  # Kolla om katalog
  if [ $x21 = "inode/directory" ]; then
    sh ./encoding_find_all_bad.sh $f
  fi
done

Programmet encoding_change_all.sh:

for f in ./$1/*
do
  echo "PATH: $f"

  #x1="$(file -i "$f")"
  #echo "I: ${x1}"

  x2="$(file --mime-type "$f")"
  x21=$(echo ${x2} | cut -d ' ' -f 2)
  echo "MIME-TYPE: ${x21}"
  x211=$(echo ${x21} | cut -d '/' -f 1)
  echo "MIME-TYPE MAIN: ${x211}"

  x3="$(file --mime-encoding "$f")"
  x31=$(echo ${x3} | cut -d ' ' -f 2)
  echo "MIME-ENCODING: ${x31}"


  # Kolla om ska ändra kodning
  if [ $x211 = "text" ]; then
    echo "TEXT FILE: Yes"

    if [ $x31 = "unknown-8bit" ]; then
      echo "MIME-ENCODING NEW: No change because of unknown-8bit"
    else
      cat $f | iconv -f $x31 -t utf8 > $f.tmp
      mv $f.tmp $f
    
      x4="$(file --mime-encoding "$f")"
      x41=$(echo ${x4} | cut -d ' ' -f 2)

      echo "MIME-ENCODING NEW: ${x41}"
    fi
  else
    echo "TEXT FILE: No"
  fi

  # Kolla om katalog
  if [ $x21 = "inode/directory" ]; then
    echo "DIRECTORY: Yes"
    echo
    sh ./encoding_change_all.sh $f
  else
    echo "DIRECTORY: No"
  fi

  echo
done

Programmen stöder inte filnamn med mellanslag.

SU-logga
Den här sidan fungerar på både stationära och mobila klienter, har hög tillgänglighet för funktionshindrade och använder webbsäkra fonter. Den följer W3C:s strikta standard HTML5 och CSS 3. Den är genererad från textfiler som använder ett egendefinerat minimalt WIKI-baserat språk och en databas. Systemet och allt material är gjort av Pierre A. I. Wijkman» och är skyddat av lagen om upphovsrätt.