Joujou avec les encodages 8859-1, UTF-8 etc

A l’occasion de l’écriture d’un script Python pour convertir un CSV-dégueu en XML-UTF8, le tout en environnement windows+linux et partant d’un CSV issu d’un Excel issu de copier-coller dégueulasses, j’ai eu à jouer avec des conversions de charset, de formats UNIX/Windows etc etc
Ca m’a permis de découvrir 2/3 outils, objet de cet article ; je passe sur la multitude d’autres problèmes de nettoyage du contenu issu du copier-coller : guillemets relookés par je ne sais qui (Word ?), tirets relookés aussi etc…

Les basiques :

  • file : permet d’identifier un type de fichier, notamment, pour du texte brut, s’il est encodé en ISO-machin ou en UTF-8. A noter, si le texte en question est à l’intérieur d’un script, enfin bref, de quelque chose enrobant ce texte, “file” se limitera à détecter le type de script, par exemple. Dans ce cas, extraire le texte en question dans un fichier à part (via des “grep”) afin d’analyser l’encodage de ce texte. J’ai pas trouvé plus simple
  • dos2unix : conversion des fins de lignes DOS (2 octets 1013 (ou l’inverse) en un seul (10 ou l’autre, je ne sais jamais :) . Si vous êtes passés par un transfert FTP type ASCII, c’est fait totomatiquement. Mais en SFTP ou autre chose, niet.
  • unix2dos : devinez

Ensuite :

  • tcs : permet de convertir un fichier encodé avec un charset vers un autre, exemple : tcs -f 8859-1 -t utf source > dest. Faites des “file” ensuite pour voir.
  • rxp : valide la syntaxe XML (et l’encodage utilisé) d’un fichier XML
  • od : affiche en hexa, ascii, octal (etc) un fichier. On peut cumuler et mettre en parallèle l’ascii avec l’hexa, par exemple

Voilà, c’est tout.

Vus : 306
Publié par Michauko : 64