解决了一个困扰我近一年的vim显示中文乱码的问题
2019-01-21 02:36:56来源:博客园 阅读 ()
今天解决了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设置查看。
原文链接:https://www.cnblogs.com/kingstarer/p/10291317.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- awk命令详解 2020-06-10
- 一个骚命令防止你的文件被误删除! 2020-06-08
- 一个骚命令防止你的文件被误删除! 2020-06-02
- 内部服务器错误Internal server error解决方法 2020-05-31
- 操作系统第六次实验报告——使用信号量解决哲学家进餐问题 2020-05-28
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash