Le meilleur moyen de convertir des fichiers de texte entre les jeux de caractères?

Quelle est la manière la plus rapide et la plus simple méthode ou outil pour convertir des fichiers texte entre les jeux de caractères?

Plus précisément, j'ai besoin de les convertir en UTF-8 en ISO-8859-15 et vice versa.

Tout va: one-liners dans votre langage de script favori, outils de ligne de commande ou d'autres utilitaires de système d'exploitation, sites web, etc.

Meilleures solutions à ce jour:

Sur UNIX/Linux/OS X/cygwin:

  • Gnu iconv suggéré par Troels Arvin est mieux utilisé comme un filtre. Il semble être universellement disponibles. Exemple:

    $ iconv -f UTF-8 -t ISO-8859-15 in.txt > out.txt
    

    Comme l'a souligné Ben, il y a un convertisseur en ligne à l'aide de iconv.

  • Gnu recode (manuel) proposé par Cheekysoft va convertir un ou plusieurs fichiers à la place. Exemple:

    $ recode UTF8..ISO-8859-15 in.txt
    

    Celui-ci utilise la plus courte alias:

    $ recode utf8..l9 in.txt
    

    Recode prend également en charge surfaces qui peut être utilisé pour convertir entre les différents caractères de fin de ligne et types de codages:

    Convertir les sauts de ligne de LF (Unix) pour CR-LF (DOS):

    $ recode ../CR-LF in.txt
    

    Base64 encode fichier:

    $ recode ../Base64 in.txt
    

    Vous pouvez également les combiner.

    Convertir un encodées en Base64 UTF8 fichier avec des fins de ligne Unix en Base64 Latin 1 fichier avec le Dos de fins de ligne:

    $ recode utf8/Base64..l1/CR-LF/Base64 file.txt
    

Sur Windows avec Powershell (Jay Bazuzi):

  • PS C:\> gc -en utf8 in.txt | Out-File -en ascii out.txt

    (Pas de ISO-8859-15 soutien; il dit qu'pris en charge les jeux de caractères unicode, utf7, utf8, utf32, ascii, bigendianunicode, par défaut, et oem.)

Modifier

Voulez-vous dire iso-8859-1? À l'aide de "Chaîne" est-ce par exemple pour les vice versa

gc -en string in.txt | Out-File -en utf8 out.txt

Remarque: Le possible des valeurs d'énumération sont "Inconnus", Chaîne de caractères, Unicode, Byte, BigEndianUnicode, UTF8, UTF7, Ascii".

  • J'ai essayé gc -en Ascii readme.html | Out-File -en UTF8 readme.html mais il convertit le fichier en utf-8 mais il est vide! Notepad++ dit que le fichier est au format Ansi, mais la lecture de ce que je comprends c'est même pas valide charset?? uk.answers.yahoo.com/question/index?qid=20100927014115AAiRExF
  • Il suffit de venir à travers cette recherche d'une réponse à une question connexe - excellent résumé! Juste pensé qu'il était utile d'ajouter que recode va agir comme un filtre si vous ne passez pas tout les noms de fichiers, par exemple: recode utf8..l9 < in.txt > out.txt
  • iconv.com/iconv.htm semble être mort pour moi? (timeout)
  • Si vous utilisez enca, vous n'avez pas besoin de spécifier l'encodage en entrée. Il est souvent assez juste de spécifier la langue: enca -L ru -x utf8 FILE.TXT.
  • En fait, iconv beaucoup mieux fonctionné comme un convertisseur au lieu d'un filtre. La conversion d'un fichier avec plus de 2 millions de lignes à l'aide de iconv -f UTF-32 -t UTF-8 input.csv > output.csv enregistré seulement environ sept cent mille lignes, seul un tiers. À l'aide de la version iconv -f UTF-32 -t UTF-8 file.csv converti avec succès toutes les 2 millions, plus de lignes.
  • "codage ISO-8859-1" ne fonctionne pas pour moi, son "ISO8859-1"... si vous voulez voir al encodigns disposition pour transformer, il suffit de taper dans la console iconv -l... merci pour l'aide
  • find httpdocs -type f -exec recode ISO-8859-15..UTF8 {} \; et vous prie de ne pas avoir de problèmes avec les images.
  • Merci beaucoup pour le résumé. Beaucoup mieux que les réponses à mon humble avis.
  • iconv reconnaît 8859_1, ISO-8859-1, ISO8859-1, UTF88591, ISO_8859-1 (de même pour d'autres codages de caractères ISO 8859). Vérifié avec iconv 2.27 (Ubuntu)