Con frecuencia encuentro archivos de texto (como archivos de subtítulos en mi idioma nativo, persa ) con problemas de codificación de caracteres. Estos archivos se crean en Windows y se guardan con una codificación inadecuada (parece ser ANSI), que parece incoherente e ilegible, así:
En Windows, se puede solucionar esto fácilmente usando Notepad ++ para convertir la codificación a UTF-8, como a continuación:
Y el resultado legible correcto es así:
He buscado mucho una solución similar en GNU / Linux, pero desafortunadamente las soluciones sugeridas (por ejemplo, esta pregunta ) no funcionan. Sobre todo, he visto a personas sugerir iconv
y recode
no he tenido suerte con estas herramientas. He probado muchos comandos, incluidos los siguientes, y todos han fallado:
$ recode ISO-8859-15..UTF8 file.txt
$ iconv -f ISO8859-15 -t UTF-8 file.txt > out.txt
$ iconv -f WINDOWS-1252 -t UTF-8 file.txt > out.txt
¡Ninguno de estos funcionó!
Estoy usando Ubuntu-14.04 y estoy buscando una solución simple (ya sea GUI o CLI) que funcione igual que Notepad ++.
Un aspecto importante de ser "simple" es que no se requiere que el usuario determine la codificación de origen; más bien, la herramienta debería detectar automáticamente la codificación de origen y solo el usuario debería proporcionar la codificación de destino. Sin embargo, también me alegrará saber acerca de una solución de trabajo que requiera que se proporcione la codificación de origen.
Si alguien necesita un caso de prueba para examinar diferentes soluciones, se puede acceder al ejemplo anterior a través de este enlace .
iso-639
, pero eso no parece estar disponible, ya sea en iconv
o recode
. Al menos, no lo veo en la salida de iconv -l
.
vim
pero no funcionó.
vim '+set fileencoding=utf-8' '+wq' file.txt
.