312 votos

¿Cuál es la mejor manera de convertir archivos de texto entre conjuntos de caracteres?

¿Cuál es la herramienta o método más rápido y sencillo para convertir archivos de texto entre conjuntos de caracteres?

En concreto, necesito convertir de UTF-8 a ISO-8859-15 y viceversa.

Todo vale: frases de una sola línea en tu lenguaje de scripting favorito, herramientas de línea de comandos u otras utilidades para el sistema operativo, sitios web, etc.

Las mejores soluciones hasta ahora :

En Linux/UNIX/OS X/cygwin:

  • Gnu iconv sugerido por Troels Arvin se utiliza mejor como filtro . Parece que está disponible en todo el mundo. Ejemplo:

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

    Como señala Ben Hay un convertidor en línea con iconv .

  • Gnu recodificar ( manual ) sugerido por Cheekysoft convertirá uno o varios archivos en su lugar . Ejemplo:

    $ recode UTF8..ISO-8859-15 in.txt
    Este utiliza alias más cortos:
    $ recode utf8..l9 in.txt

    Recode también es compatible con superficies que puede utilizarse para convertir entre diferentes tipos de finales de línea y codificaciones:

    Convierte las nuevas líneas de LF (Unix) a CR-LF (Dos):
    $ recode ../CR-LF in.txt

    Archivo codificado en Base64:
    $ recode ../Base64 in.txt     

    También puedes combinarlos.

    Convierte un archivo UTF8 codificado en Base64 con terminaciones de línea Unix a un archivo Latin 1 codificado en Base64 con terminaciones de línea Dos:
    $ recode utf8/Base64..l1/CR-LF/Base64 file.txt

En Windows con Powershell ( Jay Bazuzi ):

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

    (Sin embargo, no soporta ISO-8859-15; dice que los conjuntos de caracteres soportados son unicode, utf7, utf8, utf32, ascii, bigendianunicode, default y oem).

Edición: ¿Te refieres a la compatibilidad con iso-8859-1? El uso de "String" hace esto, por ejemplo, para viceversa
gc -en string in.txt | Out-File -en utf8 out.txt Nota: Los os valores de enumeración posibles son "Desconocido, Cadena, Unicode, Byte, BigEndianUnicode, UTF8, UTF7, Ascii".

  • CsCvt - Convertidor de conjuntos de caracteres de Kalytta ( http://www.cscvt.de ) es otra gran herramienta de conversión basada en la línea de comandos para Windows.

127voto

Troels Arvin Puntos 2454

Utilidad autónoma acercarse a

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

\-f ENCODING  the encoding of the input
-t ENCODING  the encoding of the output

27voto

Cheekysoft Puntos 16532

En Linux se puede utilizar el potentísimo recodificar para tratar de convertir entre los diferentes conjuntos de caracteres, así como cualquier problema de final de línea. recodificar -l le mostrará todos los formatos y codificaciones que la herramienta puede convertir. Es probable que sea una lista MUY larga.

14voto

Jay Bazuzi Puntos 20462
Get-Content -Encoding UTF8 FILE-UTF8.TXT | Out-File -Encoding UTF7 FILE-UTF7.TXT

La versión más corta, si se puede asumir que la lista de materiales de entrada es correcta:

gc FILE.TXT | Out-File -en utf7 file-utf7.txt

13voto

Arne Evertsson Puntos 11286

He puesto esto en el .bashrc:

utf8()
{
    iconv -f ISO-8859-1 -t UTF-8 $1 > $1.tmp
    rm $1
    mv $1.tmp $1
}

para poder convertir archivos así:

utf8 MyClass.java

12voto

Daniel Papasian Puntos 10206

iconv(1)

iconv -f DESDE LA ENCUESTA -t HASTA LA ENCUESTA archivo.txt

También hay herramientas basadas en iconv en muchos idiomas.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X