Estou acostumado a usar o vim para modificar as terminações de linha de um arquivo:
$ file file
file: ASCII text, with CRLF line terminators
$ vim file
:set ff=mac
:wq
$ file file
file: ASCII text, with CR line terminators
É possível usar um processo semelhante para alterar a codificação unicode de um arquivo? Estou tentando o seguinte, o que não 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
Eu vi alguém dizer que ele poderia "definir fileencoding = utf-8, depois atualizar e escrever o arquivo, e funciona", mas parece que estou perdendo alguma coisa, ou ele estava confuso. Não sei o que ele quis dizer com "então atualize".
Observe que há uma diferença entre
e
No primeiro caso, você alterará a codificação de saída mostrada no terminal. No segundo caso, você alterará a codificação de saída do arquivo que está gravado.
fonte
set encoding
, e as páginas ainda mostravam caracteres mutilados que estavam bem como iso-8859-1. usandoset fileencoding
mostrou um bonito 'Latin1'Enquanto usar o vim para isso é perfeitamente possível, por que você simplesmente não usa o iconv? Quero dizer - carregar o editor de texto apenas para fazer a conversão de codificação parece usar martelo muito grande para unha muito pequena.
Somente:
E você terminou.
fonte
Assim como suas etapas, a configuração da codificação de arquivo deve funcionar. No entanto, gostaria de adicionar uma "bomba de conjunto" para ajudar o editor a considerar o arquivo como UTF8.
fonte
bomb
oubom
pode serunset
? EDIT : Sim, você pode removê-lo viaset nobomb
.bomb
(com ab).:set bomb
está ativado se:set fenc=utf-8
.. veja:he bomb
Pode ser útil alterar a codificação apenas na linha de comando antes que o arquivo seja lido:
Veja começando ,
--cmd
.fonte
'single quotes'
são necessários apenas para escapar de todos os meta caracteres, o que geralmente não é o que você deseja.