登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Q超越兔子的蜗牛O--逸云沙鸥Linux

飘飘何所似,天地一沙鸥;落霞与孤鹜齐飞,秋水共长天一色~~

 
 
 

日志

 
 

vim 转换文件编码 去除中文乱码的方法  

2011-01-22 13:05:33|  分类: Linux学习笔记 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

在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打开你的文件,然后在正常模式下输入命令:

: set fileencoding=utf-8

其中<CR>表示回车

(3) 保存退出就可以了:

: wq

查看你的文档吧~ Enjoy vim,enjoy life!

关于VIM对不同编码处理应注意的事项,请参考:vim中编辑不同编码的文件时需要注意的一些地方

  评论这张
 
阅读(1376)| 评论(1)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018