使用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. 高性能网络 | 你所不知道的TIME_WAIT和CLOSE_WAIT

    你遇到过TIME_WAIT的问题吗?   我相信很多都遇到过这个问题.一旦有用户在喊:网络变慢了.第一件事情就是,netstat -a | grep TIME_WAIT | wc -l 一下.哎呀妈呀 ...

  2. Coreseek:第一步配置文件

    Windows操作系统下:mysql数据源配置:(相应coreseek-3.2.13-win32/etc/csft_mysql.conf) #源定义 source mysql { type = mys ...

  3. 05、Windows Store app 的图片裁切(更新)

    在 Win Phone Silverlight api 中,有一个 PhotoChooserTask 选择器,指定宽.高属性,在选择图片的时候, 可以进行裁切,代码: PhotoChooserTask ...

  4. Hadoop单机Hadoop测试环境搭建

    Hadoop单机Hadoop测试环境搭建: 1. 安装jdk,并配置环境变量,配置ssh免密码登录 2. 下载安装包hadoop-2.7.3.tar.gz 3. 配置/etc/hosts 127.0. ...

  5. Python 切片那些事

  6. js in

    定义: in操作符用来判断某个属性属于某个对象,可以是对象的直接属性,也可以是通过prototype继承的属性.(参见hasOwnProperty) 注意事项: n         对于一般的对象属性 ...

  7. [system]c/c++调用cat命令

    因为cat并不是一个带返回的命令,而是输出到标准输出.所以使用system("cat /sys/class/gpio/...."); 得不到我们想要的结果. 下面的/bin/ls同 ...

  8. maven远程私服发布jar包

    配置项目POM.xml <distributionManagement> <repository> <id>nexus-releases</id> &l ...

  9. memcached server LRU 深入分析

    Memcached,人所皆知的remote distribute cache(不知道的可以javaeye一下下,或者google一下下,或者baidu一下下,但是鉴于baidu的排名商业味道太浓(从最 ...

  10. android monkey app乱点测试

    Monkey是Android中的一个命令行工具 查看包名:查看电脑中某一位置的apk文件的包名:PC打开CMD-进入TMG目录-运行设备--查看包名aapt dump badging *.apk(ap ...