Bonjour,
je dois changer l'encoding sur de nombreux fichiers.
J'utilise iconv pour faire le travail
-iconv -f latin1 -t UTF-8 <nom du fichier>
Les fichiers sont lus d'un SVN puis commités à nouveau dans le svn.
Pour vérifier que tout s'est bien passé je passe la commande svn diff sur tous les fichiers modifiés.
La commande svn diff me permet de savoir ce qui a été supprimé et ajouté en parsant la sortie de svn diff, je créé deux fichiers avant.txt et apres.txt. Ces deux fichiers ne contiennent que les lignes qui ont changés.
La dernière étape qui me reste a faire c'est de vérifier qu'il n'y a pas de changement entre avant et après.
Là je sens que tout le monde sursaute 
Il y a bien sur une différence binaire car le fichier avant.txt est encodé en latin1 et le fichier après est encodé en UTF-8
1 2 3 4 5
| moi@moi-laptop:~/6.2$ file -i avant.txt
avant.txt: text/x-java; charset=iso-8859-1
moi@moi-laptop:~/6.2$ file -i apres.txt
apres.txt: text/x-java; charset=utf-8
moi@moi-laptop:~/6.2$ |
Par contre en affichage il ne doit pas y en avoir. Un é (en latin1) ou en UTF-8 doit s'afficher comme un é.
vimdiff me permet d'avoir un affichage car vim tient compte de l'encodage et il présente bien les deux fichiers sans aucune différence.
Mon problème c'est que je voudrais scripter vi ou vim ou tout autre chose (script shell) qui me permette de détecter que au niveau affichage il n'y a aucune différence.
Je ne vois pas par quel bout attaquer le problème ?
Partager