【发布时间】:2012-03-07 19:00:05
【问题描述】:
我有一个文本文件。我被告知将其设为 UTF8。我怎样才能用 Vim 做到这一点?
【问题讨论】:
我有一个文本文件。我被告知将其设为 UTF8。我怎样才能用 Vim 做到这一点?
【问题讨论】:
如果您正在编辑编码为 latin1 的文件,您会发现该缓冲区的“文件编码”设置为 latin1。所以你需要在保存文件之前手动设置文件编码。
:set fileencoding=utf8
:w myfilename
另请注意,UTF8 文件通常以字节顺序标记 (BOM) 开头,表示字节顺序。 BOM 是可选的,但有些程序专门使用它来确定文件编码。在某些情况下,Vim 会编写 BOM,但有时不会。要显式设置 BOM,请执行以下操作:
:set bomb
【讨论】:
set fileencoding=utf-8。如果你告诉 Vim 写一个,Vim 甚至不会注意到 BOM(它确实写了它)。要使 utf-8 工作,您需要在启动设置中使用它或 set encoding=utf-8。至少,这是我系统上的故事。
file -bi filename.txt,之后您会看到"text/plain; charset=utf-8"。
:w ++enc=utf-8 %
将文件以 utf-8 编码写入磁盘。
【讨论】:
fileencoding,则:w ++enc=utf-8一次有效,但下次运行:w,会使用'fileencoding'的值,如果你没有改过(明确地在编辑时,或通过重新加载文件,希望 'fencs' 设置正确并且可以很好地检测到实际编码),旧的编码将会恢复。
fileencoding 也是该问题的有效答案,IMO 不会导致养成不良习惯。不过好吧,我想这只是心情问题。