使用CentOS中的Vim 文本编辑器出现中文乱码的问题。

  凡是字符乱码的问题,都是字符集不匹配的问题引起的。这里的字符集不匹配只的是文件的编码和解码方式不匹配,同时可能涉及到不只一次的解码过程。

  计算机中的所有文件都是以二进制格式存储的(计算机可识别内容)。我们在读取文件内容时,均是通过不同的软件读取的,软件在读取文件内容时,需要使用不同的字符集来识别文件中的人类可识别内容。字符集就是一个数值与人类可识别基础字符的对照表。

  一个文件 有自己的编码字符集,编辑器在读取文件时有自己的字符集,在linux系统中还会涉及到终端的显示字符集。

 在Xshell终端中使用Vim打开文件时,中文出现乱码。分析原因时要考虑:1.文件的原始编码方式 2.vim打开文件的编码方式 3. xshell 终端的编码方式。

在 Vim 中主要有三个和字符集相关的变量: encoding(enc) , fileencoding(fenc) , fileencodings(fencs).

fileencodings:打开文件的时候进行解码的猜测列表。

fileencoding :用于设置保存文件时使用的字符集。

encoding:用于设置编辑文件时使用的字符集。   

例如:可以使用下面的命令

1.  :edit ++enc=<encoding> [filename]   以指定的编码格式重新打开文件。即在这种字符集下编辑文件。

2.  :write ++enc=<encoding> [filename]  以指定的编码格式保存文件。

以上两种方式是可以暂时 覆盖 下边 3.4 两种方式指定的默认 编辑、写入时默认的字符集。

3. :set encoding[=<encoding>]  指定编辑文件的字符集。(显示时)

4. :set fileencoding[=<encoding>] 指定保存文件的字符集。(写入时)

我们使用vim打开编辑文件时,文件时存在于内存中的,当编辑完成时 使用  :w 命令将内容写入磁盘,所以会有encoding 和 fileencoding 两种参数的,分别设置打开文件编辑时及保存内容到硬盘时使用的字符集。

vim 在打开文件是 首先根据变量 fileencodings 中的 字符集类别 猜测正确的字符集,然后将fileencoding 变量设置成选中的字符集。如果fileencodings 没有设置,选择用系统的字符集 (locale 命令查看)。之后fileencoding 被设置为此编码。

使用vim打开一个文件,可以使用 [:set fileencodings]  ,[:set fileencoding] , [:set encoding] 查看当前变量的配置信息。

在Centos中配置vim的三个变量:/etc/vimrc 文件中。

参考的文章:

https://spin.atomicobject.com/2011/06/21/character-encoding-tricks-for-vim/

http://www.itnose.net/detail/6487670.html

http://stackoverflow.com/questions/16507777/vim-set-encoding-and-fileencoding-utf-8

http://stackoverflow.com/questions/1174847/how-to-set-the-character-encoding-for-a-file-in-vim

http://www.cnblogs.com/ggjucheng/archive/2012/01/04/2312522.html

http://www.cnblogs.com/jacklikedogs/p/3494566.html

http://www.joelonsoftware.com/articles/Unicode.html

http://blog.sina.com.cn/s/blog_912de1360102wm5p.html

http://www.joelonsoftware.com/articles/Unicode.html

Vim 字符集问题的更多相关文章

  1. Linux环境下shell和vim中乱码原因及消除办法

    shell和vim中乱码原因及消除办法 作者:Jack47 在Linux下开发,经常遇到乱码问题:shell或者vim中显示不了中文,或者能够显示,但不能输入中文.每次都是上网去搜,或者同事告诉我一些 ...

  2. ubuntu下设置数据库字符集

    就linux环境下出现的数据库乱码的问题,以ubuntu为例进行的总结 ubuntu环境设置的字符集utf8,windows默认字符集是GBK,Ubuntu的默认字符集为utf-8,这使 得在用tel ...

  3. 增加UBUNTU字符集 解决中文乱码问题

    对GBK,GB2312,GB18030字符集的支持是UBUNTU中文乱码的罪魁祸首,其实我们可以在保持UTF-8为默认编码的条件下添加对这几个编码的支持,以解决中文乱码问题. 我想这个问题肯定有其他人 ...

  4. Linux字符集的查看及修改

    一·查看字符集 字符集在系统中体现形式是一个环境变量,以CentOS6.5为例,其查看当前终端使用字符集的方式可以有以下几种方式: 第一种: [root@Testa-www tmp]# echo $L ...

  5. 使linux服务器默认使用中文字符集zh_CN.UTF-8

    一.问题描述和相关概念 linux服务器的字符集设置可能影响到网站页面出现 “???” 等问号乱码,还有可能导致文件中的汉字部分出现乱码. locales设置:语言设置选项   linux真的是一个非 ...

  6. mysql配置命令 CHARACTER_SET_%字符集设置

    参照: http://blog.csdn.net/mzlqh/article/details/7621307点击打开链接 其实现在的ubuntu12. 直接sudo apt-get install M ...

  7. 快速学习C语言三: 开发环境, VIM配置, TCP基础,Linux开发基础,Socket开发基础

    上次学了一些C开发相关的工具,这次再配置一下VIM,让开发过程更爽一些. 另外再学一些linux下网络开发的基础,好多人学C也是为了做网络开发. 开发环境 首先得有个Linux环境,有时候家里机器是W ...

  8. vim 使用说明

    =========================================================本使用说明与 把VIM打造成IDE 配套======================= ...

  9. windows下vim编辑器,字符编码设置。

    在windows下的vim默认字符集修改 之前使用vim编辑器的时候碰到乱码的问题,后来在网上看了记下了:在vim编辑器中按esc进入命令模式 1.修改vim内部编码    set encoding= ...

随机推荐

  1. 深入理解Spark 2.1 Core (十一):Shuffle Reduce 端的原理与源代码分析

    http://blog.csdn.net/u011239443/article/details/56843264 在<深入理解Spark 2.1 Core (九):迭代计算和Shuffle的原理 ...

  2. 每日英语:Online Education a New Frontier in China

    In a country as obsessed with education as China, it makes sense that online teaching has huge poten ...

  3. Mac环境配置好ant后提示Permission denied

    1.ant环境变量配置如下 打开终端,输入vi ~/.bash_profile export ANT_HOME=/Users/administrator/Documents/software/apac ...

  4. Python解析xml文件遇到的编码解析的问题

    使用python对xml文件进行解析的时候,假设xml文件的头文件是utf-8格式的编码,那么解析是ok的,但假设是其它格式将会出现例如以下异常: xml.parsers.expat.ExpatErr ...

  5. 数据库 Oracle数据库对象一

    常见的数据库对象 表:基本的数据存储集合,由行和列组成 视图:从表中抽出的逻辑上相关的数据集合 序列:提供有规律的数值 索引:提高查询的效率 同义词:给对象起别名 create table语句 --c ...

  6. 多媒体开发之rtsp---rtsp client 端的实现

    http://blog.csdn.net/xyz_lmn/article/details/6055179 java实现 http://www.cnblogs.com/wohexiaocai/p/454 ...

  7. mysql -- 创建存储过程 往数据表中新增字段

    需求: 往某数据库的某个表中新增一个字段(若该字段已存在,则不做操作:若该字段不存在,则新增) 百度了n久,没有符合要求的例子,只有参考加自己琢磨,最终终于给弄出来了,以下是几个版本的更迭 第一版: ...

  8. 【BZOJ】1671: [Usaco2005 Dec]Knights of Ni 骑士(bfs)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1671 从骑士bfs一次,然后从人bfs一次即可. #include <cstdio> # ...

  9. ssh免密码登录的几个注意事项

    1, authorized_keys文件中每个公钥占一行,不能分成多行. 2,文件夹默认权限为600 3,如果遇到奇怪的问题,可以把.ssh/文件全部删掉,重新用ssh-keygen生成.

  10. win7下cmake编译opencv2.3.1生成opencv—createsamples.exe和opencv_haartrainingd.exe

    第一步:下载安装cmake,之后进行默认安装即可,这步略过. 第二步:配置cmake ,使cmake找到opencv进行编译安装 watermark/2/text/aHR0cDovL2Jsb2cuY3 ...