解决了一个困扰我近一年的vim显示中文乱码的问题
今天解决了vi命令打开日志文件中文总是显示乱码的问题。由于项目组中的日志包含一些特殊字符,所以使用vim打开日志文件时总是不能正确识别出文件字符编码。此时用:set fileencoding命令可以看出vim把文件编码识别成latin1。
在这种情况下无论终端设置成gbk还是utf-8编码,都不能正确显示中文。
解决方法有两个:
1 使用:e ++enc=utf-8命令强制让vim以utf-8编码重新打开文件 注意:由于我们程序有时也会输出gbk编码的中文字符日志,所以有时还会有少量乱码。
2 在打开文件前设置好正确的fileencodings(注意这个参数比前面多了一个s,上面的是vim探测出来的文件编码,这个是可供vim选择的文件编码列表)
在~/.vimrc里面加上一行设置
set fileencodings=ucs-bom,utf-8,gbk18030
(我们项目组机器默认的fileencodings是ucs-bom,utf-8,latin1,latin1是一种兼容性很强的字符编码,这样的设置让vim很倾向于认为文件编码是latin1)
总结一下今天学到的vim编码知识:vim涉及字符显示的选项有三个,fileencoding文件字符编码,encoding缓冲区字符编码,termencoding终端字符编码。
vim显示字符的顺序:(探测文件编码,从fileencodings里面选择最合适的编码赋值给fileencoding)按fileencoding编码读取文件->将读取到的内容转成encoding编码->将encoding编码转换成termencoding打印到终端->终端(我们平时主要使用的是securecrt)按设置的编码(一般是utf8)显示字符。
其中fileencoding必须在文件打开前设置才有效,encoding必须在vim启动前设置才有效,termencoding可以根据需要随时设置。 (之前我一直不知道这几个设置生效限制,按网上介绍修改过四个编码,但还是乱码)
这四个编码如果设置不统一,就很有可能出现中文乱码问题,其中前三个编码可以在vim查看,最后一个编码需要在securecrt设置查看。
解决了一个困扰我近一年的vim显示中文乱码的问题的更多相关文章
- RoportNG报表显示中文乱码和TestNG显示中文乱码实力解决办法
最近在进军测试自动化框架学习阶段,但无意间总是会伴随小问题的困扰,比如中文乱码,而导致显示总是不舒服,个人觉得,就一定要解决,似乎有点点强迫症.所以遇到RoportNG报表显示中文乱码和TestNG显 ...
- ReportNG报表显示中文乱码和TestNG显示中文乱码实力解决办法
最近在进军测试自动化框架学习阶段,但无意间总是会伴随小问题的困扰,比如中文乱码,而导致显示总是不舒服,个人觉得,就一定要解决,似乎有点点强迫症.所以遇到ReportNG报表显示中文乱码和TestNG显 ...
- secureCRT linux shell显示中文乱码 解决方法
引:有没有这样的经历: 1.在shell中直接查看包含中文的文件时,出现一堆火星文,不得不下载下来window看. 2.无法正常的在shell中输入中文. 3.make的时候输出一堆乱码. 以下是查阅 ...
- 两种解决Qt5显示中文乱码的方法(使用QStringLiteral和#pragma execution_character_set("utf-8")两种方法)
升级到Qt5.X之后,原先解决的Qt显示中文乱码的方法突然不适用了,找了很多方式来解决这个问题第一种:在公司代码里看到的方法,先将对应的cpp文件用windows自带的记事本打开,另存为UTF-8格式 ...
- Win 7英文系统显示中文乱码的解决(转)
Win 7英文系统显示中文乱码的解决http://www.enet.com.cn/article/2011/0811/A20110811896633.shtml 请点击Startmenu并点击Cont ...
- 解决Linux文档显示中文乱码问题以及编码转换
解决Linux文档显示中文乱码问题以及编码转换 解决Linux文档显示中文乱码问题以及编码转换 使vi支持GBK编码 由于Windows下默认编码是GBK,而linux下的默认编码是UTF-8,所以打 ...
- XFTP连接主机文件名显示中文乱码且不能下载的解决方法
Xftp连接主机文件名显示中文乱码且不能下载的本地解决方法 原因:Xftp编码格式问题 解决方法:把Xftp的编码格式增加UTF-8 具体步骤:打开Xftp,文件-属性,在打开的属性界面中打开&quo ...
- vi/vim输入中文乱码,无法输入中文解决方法
vi/vim输入中文乱码,无法输入中文解决方法 编辑/etc/vimrc或者/etc/virc,加入以下内容即可 set encoding=UTF-8 set langmenu=zh_CN.UTF-8 ...
- SecureCRT使用Vim出现中文乱码问题的解决
1. 首先保证securecrt本身显示中文是ok的.如果不是,就先解决这一个问题. 2. vi ~/.vimrc 添加set encoding=utf-8 fileencodings=ucs-bom ...
随机推荐
- 我遇到的问题:耗时久/效率低 ---> 应对方案: 行动-结果指向
这一篇打的时候,时间都挺靠后的了, 当时出现错误,很慌了,一个是时间比较久,5点多了,一个是陈果已经做了很多题了,这些是事实. 导致我慌张的原因,简单来说是比较,长久以来,我都爱去和别人比较.如果赢了 ...
- Subversion、TortoiseSVN、Ankhsvn+VS使用
Subversion为版本控制软件的服务器端.VisualSVN Server 可以在Windows平台安装和管理全功能的Subversion server. TortoiseSVN为Subversi ...
- php分享一个n维数组转一维的函数
好玩,所以做了这么一个函数,来输出唐诗 函数如下 function changearr($arr){ if(count($arr)==count($arr,1)){ return $arr; } el ...
- JavaScript基础进阶之数组方法总结
数组常用方法总结: 下面我只总结了es3中常用的数组方法,一共有11个.es5中新增的9个数组方法,后续再单独总结. 1个连接数组的方法:concat() 2个数组转换为字符串的方法:join(). ...
- C# 词法分析器(一)词法分析介绍
系列导航 (一)词法分析介绍 (二)输入缓冲和代码定位 (三)正则表达式 (四)构造 NFA (五)转换 DFA (六)构造词法分析器 (七)总结 虽然文章的标题是词法分析,但首先还是要从编译原理说开 ...
- 1.3 Essential Python Libraries(一些重要的Python库)
1.3 Essential Python Libraries(一些重要的Python库) 如果不了解Python的数据生态,以及本书中即将用到的一些库,这里会做一个简单的介绍: Numpy 这里就不过 ...
- (十)T检验-第一部分
介绍T分布.T检验.Z检验与T检验.P值.相依样本以及配对样本的非独立T检验. T分布 在到目前为止举的所有例子中,我们都假设我们知道总体参数 μ 和 σ,但很多时候,我们并不知道,我们通常只有样本, ...
- Day9 抽象类和接口
抽象类 抽象类定义 只约定类所具有的抽象行为,没有具体实现相应行为. 语法格式 abstract class 类名{ 常量; 变量; 构造(); 访问修饰符abstract 返回类型 方法名;//抽象 ...
- SSM框架之整合EhCache
本文主要讲ssm框架整合EhCache.或许有人会问什么是ehcache. 关于EhCache的介绍和优劣,我想下面的解答足以让读者明白: EhCache 是一个纯Java的进程内缓存框架,具有快速. ...
- 初识Qt窗口界面
1.新建一个新的Qt Gui应用,项目名称随意,例如MyMainWindow,基类选择QMainWindow,类名为MainWindow. 2.项目建立后,双击mainwindow.ui文件,在界面的 ...