关于 vim 里 fileencoding 和 encoding 之间编码转换问题

新手上路,请多包涵

我在vim文档中看到如下一段介绍:

以下情况,Vim 会自动把一种编码转换成另一种编码:
- 读文件时 'fileencoding' 和 'encoding' 不同
- 写文件时 'fileencoding' 和 'encoding' 不同
- 显示字符时 'termencoding' 和 'encoding' 不同
- 读取输入时 'termencoding' 和 'encoding' 不同
- 显示信息时 LC_MESSAGE 使用的编码和 'encoding' 不同 (需要支持此功能的
  gettext)
- Vim 脚本  :scriptencoding  和 'encoding' 不同
- 读写一个  viminfo  文件
以上很多都需要  +iconv  特性,读写文件的转换也可以通过指定 'chaconvert' 来完
成。

但我没有看明白是谁转换为谁,比如:” 读文件时 'fileencoding' 和 'encoding' 不同“ 时,是encoding 转换为 fileencoding 还是fileencoding转换为encoding 呢?

另:这种编码的转换会破坏文件的内容吗? 如果fileencoding的值不是文件真实的编码,这种转换还有效吗?

阅读 2.4k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进