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

linux vim用utf8打开文件,用vim打开后中文乱码怎么办相关推荐

  1. 在一个JS文件中包含中文字符串,通过innerHTML输出后中文乱码?

    在一个JS文件中包含中文字符串,通过innerHTML输出后中文乱码? Posted on 2008-07-13 12:00 尹合磊 阅读(1902) 评论(0)  编辑 收藏 所属分类: ASP.N ...

  2. 解决 IntelliJ IDEA 中 .propertise 文件保存后中文乱码

    解决 IntelliJ IDEA 中 .propertise 文件保存后中文乱码 运行环境: IntelliJ IDEA 2021.3 (Ultimate Edition)   在 IntelliJ ...

  3. CSV文件导入数据库后中文乱码

    CSV文件导入数据库后中文乱码 背景:我用的是Dbeaver连接的clickhouse数据库,向现场的同事要了数据(CSV格式文件),导入后都是途中这样的,根本用不了.在网上找到同样的情况的文章,记录 ...

  4. python中怎么打开文件_python如何打开文件

    python中的文件对象: 文件对象不仅可以用来访问普通的磁盘文件, 而且也可以访问任何其它类型抽象层面上的"文 件". 一旦设置了合适的"钩子", 你就可以访 ...

  5. python 打开文件夹_python打开目录

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python dirtree.py e:programmingpythonapp ...

  6. C++ open 打开文件(含打开模式一览表)

    在对文件进行读写操作之前,先要打开文件.打开文件有以下两个目的: 通过指定文件名,建立起文件和文件流对象的关联,以后要对文件进行操作时,就可以通过与之关联的流对象来进行. 指明文件的使用方式.使用方式 ...

  7. python中打开文件open_Python中打开文件的方式(With open)

    1.读文件 要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标 示符: f = open( '/Users/michael/test.txt', 'r' ) 标示 ...

  8. mysql navicat怎么打开文件_navicat怎么打开sql

    navicat怎么打开sql? 使用navicat导入sql文件 一.打开navicat,打开连接,右击连接名(如果新建连接,需要使用对应数据库的ip地址和密码,本机的是地址localhost,密码是 ...

  9. php 打开word显示无法打开文件,word无法打开文件,因为内容有误怎么办

    word无法打开文件,因为内容有误怎么办? word"无法打开文件,因为内容有错误"的解决 右键点击桌面空白区域,选择新建,先创建一个Word文件.也可以打开word2016,点击 ...

最新文章

  1. nginx子域名 linux,配置nginx服务器 —— Nginx添加多个二级子域名
  2. python自动化脚本实例100条-自动化运维基础实例解析-Python批量登录到服务器执行任务...
  3. 一和零(二维01背包)
  4. @RequestParam注解详解
  5. 最实用的logback讲解(1)
  6. windows log日志分割_如何将日志记录到 Windows事件日志 中
  7. 电脑word在哪_word是什么?小学生:单词,大学生:论文排版工具
  8. ubuntu中mysql怎么退出命令_ubuntu的Linux下安装MySQL
  9. 直播防盗链,域名设置
  10. 中石油大学22春季《大学英语(四)#》第一阶段在线作业
  11. cf 1144G 贪心
  12. BurpSuite 基本使用之暴力破解
  13. Arduino基础1
  14. 网络营销推广怎么做 打破传统微营销瓶颈 实现无销售成交革命
  15. emoji语言常用图标收集(有趣的emoji)
  16. EFI基本概念之HOB
  17. 济宁市计算机技能大赛,技能大赛做“试金石”,济宁市技师学院培养一流人才...
  18. [C语言]初始数据类型
  19. 码教授告诉你为什么你的#ppt做的就是没有吸引力#(转自码教授微博)
  20. 关于Fragment重叠问题分析和解决

热门文章

  1. css项目符号编号,CSS重新定义项目符号和编号_css
  2. iOS视频播放横竖屏切换技巧
  3. mysql primary key 多个_关于mysql中primary key重复的解决方法
  4. 正则表达式转义字符表
  5. cmd 生成wsdl文件_.wsdl文件生成.cs文件
  6. FPGA综合实验 05 - | VGA彩条信号显示控制电路设计
  7. QCefView源码优化
  8. 机器学习项目实践——波士顿房价预测
  9. 有些话很幽默、有些话很深邃,经典一贴[转]
  10. 人脸检测算法对比分析