Estoy acostumbrado a usar vim para modificar las terminaciones 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 utilizar 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 fileencoding = 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 "luego actualizar".
Tenga en cuenta 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.
fuente
set encoding
, y aún las páginas mostraban caracteres destrozados que estaban bien como iso-8859-1. usandoset fileencoding
mostró un bonito 'Latin1'Si bien usar vim para hacerlo es perfectamente posible, ¿por qué no simplemente usas iconv? Quiero decir: cargar el editor de texto solo para realizar la conversión de codificación parece usar un martillo demasiado grande para un clavo demasiado pequeño.
Sólo:
Y tu estas listo.
fuente
Al igual que sus pasos, la configuración de la codificación de archivos debería funcionar. Sin embargo, me gustaría agregar un "set bomba" para ayudar al editor a considerar el archivo como UTF8.
fuente
bomb
obom
, y puede serunset
? EDITAR : Sí, puede eliminarlo a través deset nobomb
.bomb
(con ab).:set bomb
se enciende si:set fenc=utf-8
... ver:he bomb
Podría ser útil cambiar la codificación solo en la línea de comando antes de leer el archivo:
Ver comenzar ,
--cmd
.fuente
'single quotes'
solo son necesarios para escapar de todos los metacaracteres, que generalmente no es lo que quieres.