ubuntu 中文化 UTF-8 GB18030 GBK GB2312 BIG5

说明,这里的设置参考了网上大量文章,东拼西凑,并亲手操作验证正确。在此感谢原创者。

 

安装时选择中文系统,或者用从英文系统切换到中文系统

系统设置--->语言支持

语言页拉动“汉语(中国)”到第一项,再点击“应用到整个系统”

地区格式页选择“汉语(中国)”,再点击“应用到整个系统”

 

配置系统环境,让系统支持GBK

$ sudo vim /var/lib/locales/supported.d/local

增加下面几句:

zh_CN.UTF-8 UTF-8 或者 en_US.UTF-8 UTF-8

zh_CN.GB18030 GB18030

zh_CN.GBK GBK

zh_CN.GB2312 GB2312

zh_HK.BIG5 BIG5

zh_TW.BIG5 BIG5

$ sudo locale-gen

 

配置vim,使其默认GBK编码

$ sudo vim /etc/vim/vimrc

在最后增加下面几句:

let &termencoding=&encoding

set fileencodings=utf-8,gb18030,gbk,gb2312,big5

set encoding=gbk

按最后的“VIM中关于encoding的说明”,及鉴于ssh采用utf-8

我只设置如下:

set fileencodings=utf-8,gb180303,gbk,gb2312,big5

set encoding=utf-8

let &termencoding=&encoding

即默认还是utf-8编码,但能识别和编辑GBK

然后按需转换 set fileencoding=gbk 或 set fileencoding=utf-8

又或者使用外部工具enca转换编码

 

配置terminal,使其支持GBK编码

终端--->设定字符编码--->添加或删除

添加如下编码到右侧:

简体中文 GB18030

简体中文 GBK

简体中文 GB2312

繁体中文 BIG5

 

使terminal使用GBK编码

终端--->设定字符编码--->简体中文(GBK)

 

配置gedit,使其支持另存为GBK编码

文件--->另存为--->字符编码--->添加或删除

添加如下编码:

简体中文 GB18030

简体中文 GBK

简体中文 GB2312

繁体中文 BIG5

 

配置gedit,使其打开文件时能自动识别GBK编码

$ sudo apt-get install dconf-tools

$ dconf-editor

org--->gnome--->gedit--->preference--->encodings

auto-detected项目,把'GB18030', 'GBK', 'GB2312', 'BIG5',添加到'UTF-8',后面。

 

判断及转换文件的编码,可以使用enca工具

安装enca

$ sudo apt-get -y install enca

查看文件file的编码

$ enca file

转换文件file的编码

转为utf-8编码

$ enca -L zh_CN -x utf-8 file

转为gbk编码

$ enca -L zh_CN -x gbk file

 

VIM中关于encoding的说明

Vim 有四个跟字符编码方式有关的选项,encodingfileencodingfileencodingstermencoding (这些选项可能的取值请参考 Vim 在线帮助 :help encoding-names),它们的意义如下

 

* encoding: Vim 内部使用的字符编码方式,包括 Vim 的 buffer (缓冲区)、菜单文本、消息文本等。默认是根据你的locale选择.用户手册上建议只在 .vimrc 中改变它的值,事实上似乎也只有在.vimrc 中改变它的值才有意义。你可以用另外一种编码来编辑和保存文件,如你的vimencodingutf-8,所编辑的文件采用cp936编码,vim会自动将读入的文件转成utf-8(vim的能读懂的方式),而当你写入文件时,又会自动转回成cp936(文件的保存编码).

 

 * fileencoding: Vim 中当前编辑的文件的字符编码方式,Vim 保存文件时也会将文件保存为这种字符编码方式 (不管是否新文件都如此)。 * fileencodings: Vim自动探测fileencoding的顺序列表, 启动时会按照它所列出的字符编码方式逐一探测即将打开的文件的字符编码方式,并且将 fileencoding 设置为最终探测到的字符编码方式。因此最好将Unicode 编码方式放到这个列表的最前面,将拉丁语系编码方式 latin1 放到最后面。 

 

* termencoding: Vim 所工作的终端 (或者 Windows 的 Console 窗口的字符编码方式。如果vim所在的termvim编码相同,则无需设置。如其不然,你可以用vimtermencoding选项将自动转换成term的编码.这个选项在 Windows 下对我们常用的 GUI 模式的 gVim 无效,而对 Console 模式的Vim 而言就是 Windows 控制台的代码页,并且通常我们不需要改变它。 

 

好了,解释完了这一堆容易让新手犯糊涂的参数,我们来看看 Vim 的多字符编码方式支持是如何工作的。

 1. Vim 启动,根据 .vimrc 中设置的 encoding 的值来设置 buffer、菜单文本、消息文的字符编码方式。

 2. 读取需要编辑的文件,根据 fileencodings 中列出的字符编码方式逐一探测该文件编码方式。并设置 fileencoding 为探测到的,看起来是正确的 (1) 字符编码方式。

 3. 对比 fileencoding 和 encoding 的值,若不同则调用 iconv 将文件内容转换为encoding 所描述的字符编码方式,并且把转换后的内容放到为此文件开辟的 buffer 里,此时我们就可以开始编辑这个文件了。注意,完成这一步动作需要调用外部的 iconv.dll(2),你需要保证这个文件存在于 $VIMRUNTIME 或者其他列在 PATH 环境变量中的目录里。

 4. 编辑完成后保存文件时,再次对比 fileencoding 和 encoding 的值。若不同,再次调用 iconv 将即将保存的 buffer 中的文本转换为 fileencoding 所描述的字符编码方式,并保存到指定的文件中。同样,这需要调用 iconv.dll由于 Unicode 能够包含几乎所有的语言的字符,而且 Unicode 的 UTF-8 编码方式又是非常具有性价比的编码方式 (空间消耗比 UCS-2 ),因此建议 encoding 的值设置为utf-8。这么做的另一个理由是 encoding 设置为 utf-8 时,Vim 自动探测文件的编码方式会更准确 (或许这个理由才是主要的 ;)。我们在中文 Windows 里编辑的文件,为了兼顾与其他软件的兼容性,文件编码还是设置为 GB2312/GBK 比较合适,因此 fileencoding 建议设置为 chinese (chinese 是个别名,在 Unix 里表示 gb2312,在 Windows 里表示cp936,也就是 GBK 的代码页)

posted @ 2012-12-09 09:28  timkyle_zhang  阅读(738)  评论(0编辑  收藏  举报