How can I change a file's encoding with vim?

skiphoppy picture skiphoppy · Apr 22, 2009 · Viewed 238.2k times · Source

I'm used to using vim to modify a file's line endings:

$ file file
file: ASCII text, with CRLF line terminators
$ vim file
:set ff=mac
:wq
$ file file
file: ASCII text, with CR line terminators

Is it possible to use a similar process to change a file's unicode encoding? I'm trying the following, which doesn't work:

$ 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

I saw someone say that he could "set fileencoding=utf-8, then update and write the file, and it works," but I seem to be missing something, or else he was confused. I don't know what he meant by "then update."

Answer

Brian Agnew picture Brian Agnew · Apr 22, 2009

From the doc:

:write ++enc=utf-8 russian.txt

So you should be able to change the encoding as part of the write command.