ver convertir como codificacion cambiar bom archivos archivo vim unicode

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

set encoding

y

set fileencoding

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.


Podría ser útil cambiar la encoding solo en la línea de comando antes de leer el archivo:

rem On MicroSoft Windows vim --cmd "set encoding=utf-8" file.ext # In *nix shell vim --cmd ''set encoding=utf-8'' file.ext

Ver starting , --cmd .