11.1.6. 带有自动转换功能的编辑器

vim 这样的现代智能编辑器软件是相当聪明的并且能够处理任何编码系统以及任何文件格式。你应该在支持 UTF-8 编码的控制台上并在 UTF-8 环境下使用这些编辑器来获得最好的兼容性。

以 latin1(iso-8859-1)编码存储的旧西欧语言的 Unix 文本文件,“u-file.txt”,能通过如下所示的用 vim 轻易的编辑。

  1. $ vim u-file.txt

这是可能的因为 vim 的文件编码自动检测机制先假定文件是 UTF-8 编码,如果失败了,则假定它是 latin1 编码。

以 latin2(iso-8859-2) 编码存储的旧波兰语的 Unix 文本文件,“pu-file.txt”,能通过如下所示的用 vim 编辑。

  1. $ vim '+e ++enc=latin2 pu-file.txt'

以 eucJP 编码存储的旧日语的 Unix 文本文件,”ju-file.txt“,能通过如下所示的用 vim 编辑。

  1. $ vim '+e ++enc=eucJP ju-file.txt'

以所谓的 shift-JIS 编码 (更确切的说法是:CP932) 存储的旧日语 MS-Windows 文本文件,”jw-file.txt“,能通过如下所示的用 vim 编辑。

  1. $ vim '+e ++enc=CP932 ++ff=dos jw-file.txt'

当一个文件用 vim 打开的时候带有 “++enc“ 和 “++ff“ 选项,在 Vim 命令行输入 “:w“ 命令会以原格式存储文件并且会覆盖原文件。你也可以在 Vim 命令行指定存储文件名及其格式,例如,”:w ++enc=utf8 new.txt“。

请查阅 vim 在线帮助中的 mbyte.txt,”多字节文本支持”和表 11.2 “编码值和用法的列表”来获得 “++enc“ 使用的本地值的信息。

emacs 家族的程序能够实现同样的功能。