我习惯使用vim来修改文件的行结尾:
$ file file file: ASCII text, with CRLF line terminators $ vim file :set ff=mac :wq $ file file file: ASCII text, with CR line terminators
是否可以使用类似的过程来更改文件的unicode编码?我正在尝试以下方法,但这不起作用:
$ 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
我看到有人说他可以"设置fileencoding = utf-8,然后更新并写入文件,它可以工作",但我似乎错过了一些东西,否则他很困惑.我不知道"然后更新"是什么意思.
来自doc:
:写++ enc = utf-8 russian.txt
因此,您应该能够将编码更改为write命令的一部分.
请注意,两者之间存在差异
set encoding
和
set fileencoding
在第一种情况下,您将更改终端中显示的输出编码.在第二种情况下,您将更改所写文件的输出编码.
虽然使用vim完全可以,但为什么不简单地使用iconv?我的意思是 - 加载文本编辑器只是为了进行编码转换似乎使用太大的锤子太小的指甲.
只是:
iconv -f utf-16 -t utf-8 file.xml > file.utf8.xml
而且你已经完成了.
就像您的步骤一样,设置fileencoding应该可行.但是,我想添加一个"set bomb"来帮助编辑器将文件视为UTF8.
$ vim file :set bomb :set fileencoding=utf-8 :wq