在linux下读取中文文本文件时,最长用的是gedit,但是很多时候都会发现乱码,因为编码方式不一样,在windows下大部分中文文档是 GB2312或者 GBK,或者是 GB18030这几种。但linux默认是UTF-8的,打开文件的时候、gedit默认测试UTF-8、UTF-16等在内的几种编码方式、然后以“猜想”的一种合适的方式打开文件,但往往没有正确的该使用GB2312等中文的编码。所以需要在gedit自动查看的编码中添加自己的文档的编码方式。
方式如下:
1. 在gedit配置文件中添加对中文编码的默认探测,打开gconf编辑器后如下选子菜单 :
终端-> gconf-editor ->app / gedit-2 / preferences / encodings -> 双击auto_detected -> 添加项 GB2312、GBK并且将其上移到开始位置。
然后在打开中文文本就可以正常显示了。
2、高级方法,直接将文档转化成标准的 utf-8格式,最好使用vim、并且要让vim正确的自动选择合适的编码方式来打开原来的文件,然后以指定的标准文件编码方式保存,这样以后任意文本编辑器就可以打开了。
(1)编辑 ~/.vimrc使vim能够自动探测文件编码,添加的内容如下:
" Encoding settings if has("multi_byte") " Set fileencoding priority if getfsize(expand("%")) > 0 set fileencodings=ucs-bom,utf-8,cp936,big5,euc-jp,euc-kr,latin1 else set fileencodings=cp936,big5,euc-jp,euc-kr,latin1 endif " CJK environment detection and corresponding setting if v:lang =~ "^zh_CN" " Use cp936 to support GBK, euc-cn == gb2312 set encoding=cp936 set termencoding=cp936 set fileencoding=cp936 elseif v:lang =~ "^zh_TW" " cp950, big5 or euc-tw " Are they equal to each other? set encoding=big5 set termencoding=big5 set fileencoding=big5 elseif v:lang =~ "^ko" " Copied from someone's dotfile, untested set encoding=euc-kr set termencoding=euc-kr set fileencoding=euc-kr elseif v:lang =~ "^ja_JP" " Copied from someone's dotfile, unteste set encoding=euc-jp set termencoding=euc-jp set fileencoding=euc-jp endif " Detect UTF-8 locale, and replace CJK setting if needed if v:lang =~ "utf8$" || v:lang =~ "UTF-8$" set encoding=utf-8 set termencoding=utf-8 set fileencoding=utf-8 endif else echoerr "Sorry, this version of (g)vim was not compiled with multi_byte" endif
(2) 用vim打开你的文件,然后在正常模式下输入命令:
其中<CR>表示回车
(3) 保存退出就可以了:
查看你的文档吧~ Enjoy vim,enjoy life!
关于VIM对不同编码处理应注意的事项,请参考:vim中编辑不同编码的文件时需要注意的一些地方
评论