Salut, j'essaie de convertir certains fichiers journaux à partir d'un serveur Microsoft SQL, mais les fichiers sont codés en utilisant UTf-16LE et iconv ne semble pas être en mesure de les convertir.
Je fais:
iconv -f UTF-16LE -t UTF-8 <filename>
J'ai également essayé de supprimer tous les retours chariot à la fin de la ligne s'il y en a, mais cela ne l'a pas corrigé non plus. Si je l'enregistre en utilisant gedit, cela fonctionne, mais ce n'est pas une solution viable car j'ai des centaines de ces fichiers.
EDIT : Veuillez voir la nouvelle réponse pour l'option manquante
J'ai oublié le -o
commutateur!
La commande finale est:
iconv -f UTF-16LE -t UTF-8 <filename> -o <new-filename>
La commande que vous avez spécifiée sortira sur stdout. Vous pouvez soit utiliser le -o
paramètre, ou redirigez votre sortie:
avec -o
:
iconv -f UTF-16LE -t UTF-8 infile -o outfile
avec passepoil:
iconv -f UTF-16LE -t UTF-8 infile > outfile
Les deux donneront le résultat souhaité.
Cependant, certaines versions d'iconv (v1 sur macOS par exemple) ne prennent pas en charge le -o
et vous verrez que le texte converti est répercuté sur stdout. Dans ce cas, utilisez l'option de tuyauterie.