GNU/Linux >> Tutoriels Linux >  >> Linux

iconv tout encodage en UTF-8

Compilation de tous. Allez dans le répertoire, créez dir2utf8.sh :

#!/bin/bash
# converting all files in a dir to utf8

for f in *
do
  if test -f $f then
    echo -e "\nConverting $f"
    CHARSET="$(file -bi "$f"|awk -F "=" '{print $2}')"
    if [ "$CHARSET" != utf-8 ]; then
      iconv -f "$CHARSET" -t utf8 "$f" -o "$f"
    fi
  else
    echo -e "\nSkipping $f - it's a regular file";
  fi
done

Peut-être cherchez-vous enca :

Enca est un analyseur de jeu de caractères extrêmement naïf. Il détecte le jeu de caractères et l'encodage des fichiers texte et peut également les convertir en d'autres encodages à l'aide d'un convertisseur intégré ou de bibliothèques et d'outils externes tels que libiconv, librecode ou cstocs.

Actuellement, il prend en charge le biélorusse, le bulgare, le croate, le tchèque, l'estonien, le hongrois, le letton, le lituanien, le polonais, le russe, le slovaque, le slovène, l'ukrainien, le chinois et certains encodages multioctets indépendamment de la langue.

Notez qu'en général, la détection automatique de l'encodage actuel est un processus difficile (la même séquence d'octets peut être un texte correct dans plusieurs encodages). enca utilise des heuristiques basées sur la langue que vous lui dites de détecter (pour limiter le nombre d'encodages). Vous pouvez utiliser enconv pour convertir des fichiers texte en un seul encodage.


Vous pouvez obtenir ce dont vous avez besoin en utilisant le fichier standard gnu utils et awk. Exemple :

file -bi .xsession-errors me donne :"text/plain; charset=us-ascii"

donc file -bi .xsession-errors |awk -F "=" '{print $2}' me donne"us-ascii"

Je l'utilise dans des scripts comme ceci :

CHARSET="$(file -bi "$i"|awk -F "=" '{print $2}')"

if [ "$CHARSET" != utf-8 ]; then
  iconv -f "$CHARSET" -t utf8 "$i" -o outfile
fi

Linux
  1. Tr analogique pour les caractères Unicode ?

  2. Conversion de pages Web d'UTF-8 en ISO-8859-1 sous Linux

  3. Une expérience Java sur Raspberry PI ?

  4. Hibernate + MySQL :comment définir l'encodage utf-8 pour la base de données et les tables

  5. Lier libstdc++ de manière statique :des pièges ?

Gobolinux est-il plus actif ?

“queue -f | Iconv -fsjis" ne produit rien ?

Comment diriger les commandes vers n'importe quel terminal ?

Paroles instantanées - Obtenez les paroles de n'importe quelle chanson sur Spotify

Réparer l'encodage des balises ID3

Comment convertir un fichier texte de Shift JIS en UTF-8 et inversement depuis le terminal