我有一个包含中文字符的文本文件。我可以查看它gedit
并且它工作正常,但是当我尝试使用 Vim 打开它时,我看到以下内容:
»¹Ã»ºÃºÃ¸ßËÑÑ©»¨ÕÀ·ÅµÄÆøºò£¬ÄôÀÚ¹âÈáÈõºì´øÉÏÀ²»Éϵľ糡°æ,
我正在使用 Vim 7.04。
答案1
一些智能文本编辑器会尝试猜测正在使用哪种字符编码。在本例中,gedit 猜对了,而 Vim 选择了另一种对它有意义的字符集……但并不完全符合您的预期。(它之所以选择这种字符集,可能是因为您也可以设置默认编码。)
您可以使用命令行获取文件的字符编码file -bi [filename]
。
您可以从 vim 命令中获取当前字符集:set fileencoding?
您可以使用以下方式设置编码:set encoding=<encoding>
您可能会发现它返回类似 iso-8859-1 的内容。而您的文件可能是以 UTF-8、UTF-16 或 Big5 编码的。
您还可以使用 设置文件的编码:set fileencoding=<encoding>
。
如果您打开文件并更改文件编码,它会将该文件视为已修改,并将其保存在新编码中。
欲了解更多信息,您可能需要阅读这个SO问题:https://stackoverflow.com/questions/8121609/vims-encoding-options
这里有一个方便的 vim 字符编码选项的链接:http://mindspill.net/computing/linux-notes/determine-and-change-file-character-encoding/