一般来说只需要正确设置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的内部编码,除非你确定知道你在干什么,否则一般不需要修改。

vim 中文乱码怎么解决的更多相关文章

  1. 解决windows下vim中文乱码

    解决windows下vim中文乱码 windows安装了vim8,也就是gvim后,打开带有中文的文档,显示中文是乱码. 毕竟有许多文档我是用utf-8编码的,所以解决的办法是设置一下编码为utf-8 ...

  2. fedora23解决gedit和vim中文乱码的问题

    fedora23解决gedit和vim中文乱码的问题 a, an, the这些不定/定 冠词并不是在所有的名词 前面都要加. 只有在语义上需要时,才加. 名词的单数/复数 前面不加 冠词的 例子多的是 ...

  3. VIM中文乱码

    下面是关于VIM中文乱码问题的解决方法: 打开VIM的配制文件在里面加上一段这样的代码就可以了: set encoding=prc

  4. 自学Python1.4-Centos内vim中文乱码问题

    自学Python之路 自学Python1.4-Centos内vim中文乱码问题 1. 登陆的系统---区域语言设置 1.1查看安装中文包: 查看系统是否安装中文语言包 (列出所有可用的公共语言环境的名 ...

  5. xShell终端中文乱码完全解决方法

    xShell终端中文乱码完全解决方法 xShell(xShell5)以及其他终端中文乱码的原因无非有三种:(1)Linux系统的编码问题:(2)xShell终端的编码问题: (3)两端的语言编码不一致 ...

  6. Win 7英文系统显示中文乱码的解决(转)

    Win 7英文系统显示中文乱码的解决http://www.enet.com.cn/article/2011/0811/A20110811896633.shtml 请点击Startmenu并点击Cont ...

  7. php 使用phpmailer 发送邮件(附带中文乱码的解决方法)

    下载phpmailer ,在程序里包含class.phpmailer.php 类  ,这里有中文乱码的解决方法 实例代码如下 <html> <head> <title&g ...

  8. C#中WebClient使用DownloadString中文乱码的解决办法

    原文:C#中WebClient中文乱码的解决办法 第一次尝试: string question = textBox1.Text.ToString(); WebClient client= new We ...

  9. JSP的学习(4)——中文乱码的解决

    本篇将以JSP页面中可能存在的中文乱码问题进行分析和解决. 中文乱码的问题一直是国人在编程过程中的一大头疼问题,这点上在JSP.Servlet或Tomcat上随处可见.比如我们在写一个Servlet时 ...

随机推荐

  1. 前三次OO作业小结

    I used to be enamored of object-oriented programming. I'm now finding myself leaning toward believin ...

  2. mybaties插件生成代码

    指定插件运行什么xml,关于如何用idea创建一个maven项目,可以看我以前写的博客 <?xml version="1.0" encoding="UTF-8&qu ...

  3. pip升级

    只要出现报错:python -m pip install --upgrade pip.都表示需要进行升级pip版本 查看pip版本:pip -V(pip可能是python2版本或python3版本) ...

  4. Celery异步的分布式任务调度理解

    什么是Celery呢? Celery是一个用Python开发的异步的分布式任务调度模块. Celery本身不包含消息服务,使用第三方消息服务,也就是Broker,来传递任务,目前支持的有Rebbimq ...

  5. HTML5 动画用 animation transform transition 做的两个例子

    1,左右移动,自我翻转的圆 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...

  6. OrderBy排序和IComparer的使用

    https://www.cnblogs.com/May-day/p/7490334.html 一,OrderBy排序在MDSN中有两种使用方法,如下 1>第一种方法的使用,就是根据某个字段排序, ...

  7. Grafana短信报警实现

    1.阿里云短信服务API2.Jenkins-plugin:Generic Webhook Trigger Plugin 阿里云 下载阿里云短信服务SDK 创建短信服务ACCESS_KEY_ID Gra ...

  8. springboot之Filter指定过滤URL的常见问题

    在使用Filter对一些自己指定的URL进行过滤拦截时,经常会出现如下错误: 1. 明明在@WebFilter(urlPatterns={"/app/online"})中过滤的是/ ...

  9. loadrunner 关联函数web_reg_save_param

    当我们每次访问网站都需要提交从服务器获取的动态文本时就会需要用到关联函数,就好像每次乘坐火车票我们都需要用最新的火车票,如果用旧车票就不能做火车,如果我们采用了录制时的旧动态码如usersession ...

  10. Jacobian矩阵、Hessian矩阵和Newton's method

    在寻找极大极小值的过程中,有一个经典的算法叫做Newton's method,在学习Newton's method的过程中,会引入两个矩阵,使得理解的难度增大,下面就对这个问题进行描述. 1, Jac ...