convertir - ¿Cómo puedo cambiar la codificación de un archivo con vim?
convertir archivos a utf 8 sin bom (5)
Estoy acostumbrado a usar vim para modificar los finales de línea de un archivo:
$ file file
file: ASCII text, with CRLF line terminators
$ vim file
:set ff=mac
:wq
$ file file
file: ASCII text, with CR line terminators
¿Es posible usar un proceso similar para cambiar la codificación Unicode de un archivo? Estoy intentando lo siguiente, que no funciona:
$ file file.xml
file.xml: Unicode text, UTF-16, little-endian
$ vim file
:set encoding=utf-8
:wq
$ file file.xml
file.xml: Unicode text, UTF-16, little-endian
Vi a alguien decir que podía "configurar la codificación de archivo = utf-8, luego actualizar y escribir el archivo, y funciona", pero parece que me falta algo, o de lo contrario estaba confundido. No sé a qué se refería con "entonces actualizar".
Al igual que sus pasos, la configuración de la codificación de archivos debería funcionar. Sin embargo, me gustaría agregar un "conjunto bomba" para ayudar al editor a considerar el archivo como UTF8.
$ vim file
:set bomb
:set fileencoding=utf-8
:wq
Desde el doc :
: write ++ enc = utf-8 russian.txt
Por lo tanto, debería poder cambiar la codificación como parte del comando de escritura.
Mientras que usar vim para hacerlo es perfectamente posible, ¿por qué no simplemente usas iconv? Quiero decir, cargar el editor de texto solo para hacer la conversión de la codificación parece como usar un martillo demasiado grande para un clavo demasiado pequeño.
Sólo:
iconv -f utf-16 -t utf-8 file.xml > file.utf8.xml
Y tu estas listo.
Observe que hay una diferencia entre
y
En el primer caso, cambiará la codificación de salida que se muestra en el terminal. En el segundo caso, cambiará la codificación de salida del archivo que se escribe.