用vim打开后中文乱码怎么办

如题所述

Vim中打开文件乱码主要是文件编码问题。用户可以参考如下解决方法。

1、用vim打开.vimrc配置文件 

2、在.vimrc中加入如下内容

set termencoding=utf-8
set encoding=utf8
set fileencodings=utf8,ucs-bom,gbk,cp936,gb2312,gb18030

说明:encoding是Vim内部使用的字符编码方式,一般设置为utf8。termencoding是Vim所工作的终端(或者 Windows的Console窗口)的字符编码方式,一般设置为utf8。fileencodings是Vim自动探测fileencoding的顺序列表,启动时会按照它所列出的字符编码方式逐一探测即将打开的文件的字符编码方式。这些设置需要set命令来进行设置生效。

3、执行:wq保存退出vim,再次用vim打开文件即可。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-04-02
一般来说只需要正确设置vim的编码识别序列就很少会遇到乱码问题:
set
fileencodings=ucs-bom,utf-8,utf-16,gbk,big5,gb18030,latin1
这个设置是有顺序的,一般原则是尽可能把比较独特、不会和别的编码混淆的放在前面(例如ucs-bom,由于带有BOM头的关系很难和别的混淆),然后后面可以按照常用程度降序排列。latin1作为fallback放到最后。
这个序列可能还不是很科学也不是很完整(日文、韩文这两个也比较容易出错的就没有包括),但至少就我目前的使用情况来说(英文及一些ASCII扩展/变种、简体和繁体中文)都没有遇到过问题。如果有朋友知道更好的顺序,欢迎回复或者直接修改我的回答。
如果打开之后还是遇到了乱码,那么就需要手动指定编码了。注意,网络上很多地方提到的设置“fileencoding”(注意不带s)的方法是错误的。认真阅读帮助文档:
When
reading
a
file
'fileencoding'
will
be
set
from
'fileencodings'.
To
read
a
file
in
a
certain
encoding
it
won't
work
by
setting
'fileencoding',
use
the
|++enc|
argument.
当你打开一个文件以后,vim就已经选定好了编码并且认为就是这个编码了,set
fileencoding只是修改你希望这个文件以什么编码存在,相当于是设置保存时的编码——一旦设置了不同的fileencoding之后这个文件就变成modified了,需要保存(编码变了)。
正确的做法是在打开文件时使用++enc参数:
:e
++enc=someencoding
somefile
如果想重新打开当前文件的话就省略文件名somefile即可。这儿有一个wiki你可以看看:Reloading
a
file
using
a
different
encoding
最后,不要碰encoding这个设置!这是vim的内部编码,除非你确定知道你在干什么,否则一般不需要修改。
第2个回答  2020-12-23

解压文件出现中文乱码怎么办解决办法

华为Mate50 Pro曲面旗舰手机

¥6799

苹果 AirPods Pro 2代

¥1699

索尼65英寸4K HDR专业游戏电视

¥7499

惠普战66五代15.6英寸轻薄本

¥4399