Quel est l'outil ou la méthode la plus rapide et la plus simple pour convertir des fichiers texte entre des jeux de caractères ?
Plus précisément, je dois convertir l'UTF-8 en ISO-8859-15 et vice versa.
Tout est permis : des expressions en une ligne dans votre langage de script préféré, des outils en ligne de commande ou d'autres utilitaires pour les systèmes d'exploitation, des sites web, etc.
Les meilleures solutions jusqu'à présent :
Sous Linux/UNIX/OS X/cygwin :
-
Gnu icônev suggéré par Troels Arvin est mieux utilisé comme filtre . Il semble être universellement disponible. Exemple :
$ iconv -f UTF-8 -t ISO-8859-15 in.txt > out.txt
Comme l'a souligné Ben il existe un convertisseur en ligne utilisant iconv .
-
Gnu recode ( manuel ) suggéré par Cheekysoft convertira un ou plusieurs fichiers sur place . Exemple :
$ recode UTF8..ISO-8859-15 in.txt
Celui-ci utilise des pseudonymes plus courts :
$ recode utf8..l9 in.txt
Recode prend également en charge surfaces qui peut être utilisé pour convertir entre différents types de fin de ligne et d'encodage :
Convertit les nouvelles lignes de LF (Unix) en CR-LF (DOS) :
$ recode ../CR-LF in.txt
Fichier codé en base64 :
$ recode ../Base64 in.txt
Vous pouvez également les combiner.
Convertissez un fichier UTF8 encodé en Base64 avec des fins de lignes Unix en un fichier Latin 1 encodé en Base64 avec des fins de lignes Dos :
$ 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 support de l'ISO-8859-15 cependant ; il est dit que les jeux de caractères supportés sont unicode, utf7, utf8, utf32, ascii, bigendianunicode, default, et oem).
Editar
Voulez-vous dire le support iso-8859-1 ? L'utilisation de "String" permet de le faire, par exemple pour l'inverse.
gc -en string in.txt | Out-File -en utf8 out.txt
Remarque : Les valeurs d'énumération possibles sont "Inconnu, Chaîne, Unicode, Octet, BigEndianUnicode, UTF8, UTF7, Ascii".
- CsCvt - Le convertisseur de jeux de caractères de Kalytta est un autre excellent outil de conversion en ligne de commande pour Windows.
0 votes
J'ai essayé
gc -en Ascii readme.html | Out-File -en UTF8 readme.html
mais il convertit le fichier en utf-8 mais ensuite il est vide ! Notepad++ dit que le fichier est au format Ansi, mais si je comprends bien, ce n'est même pas un jeu de caractères valide ? fr.answers.yahoo.com/question/index?qid=20100927014115AAiRExF2 votes
Je suis tombé sur ce site en cherchant une réponse à une question connexe - excellent résumé ! J'ai pensé qu'il valait la peine d'ajouter que
recode
agira également comme un filtre si vous ne lui passez aucun nom de fichier, par exemple :recode utf8..l9 < in.txt > out.txt
0 votes
iconv.com/iconv.htm semble être mort pour moi ? (timeout)
2 votes
Si vous utilisez
enca
vous n'avez pas besoin de spécifier l'encodage d'entrée. Il est souvent suffisant de spécifier la langue :enca -L ru -x utf8 FILE.TXT
.1 votes
En fait, iconv fonctionnait beaucoup mieux en tant que convertisseur sur place plutôt qu'en tant que filtre. La conversion d'un fichier de plus de 2 millions de lignes à l'aide de
iconv -f UTF-32 -t UTF-8 input.csv > output.csv
n'a sauvé qu'environ sept cent mille lignes, seulement un tiers. En utilisant la version in-placeiconv -f UTF-32 -t UTF-8 file.csv
a converti avec succès les plus de 2 millions de lignes.0 votes
L'encodage "ISO-8859-1" ne fonctionne pas pour moi, c'est "ISO8859-1"... si vous voulez voir tous les encodages disponibles pour la transformation, tapez simplement dans la console
iconv -l
... merci pour votre aide0 votes
find httpdocs -type f -exec recode ISO-8859-15..UTF8 {} \;
et prie pour que tu n'aies pas de problèmes avec les images.0 votes
Merci beaucoup pour le résumé. Bien meilleur que les réponses, à mon avis.
0 votes
@Cocuba iconv reconnaît 8859_1, ISO-8859-1, ISO8859-1, ISO88591, ISO_8859-1 (idem pour les autres codages de caractères ISO 8859). Vérifié avec iconv 2.27 (Ubuntu)
0 votes
Comment convertir en
LF
? Il y a/CR
y/CR-LF
mais non/LF
.