BaNg@taobao

Just Do It!

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  20 Posts :: -1 Stories :: 202 Comments :: 0 Trackbacks

插件源代码下载 (导入插件在workspace中,右键export->Plug-in Development->Deployable plug-ins and fragments,然后生成插件binar文件)
二进制包下载   (因为blogjava不许上传jar文件,请下载后将zip后缀改为jar后缀然后拷贝到eclipse/plugins目录)


一般在使用Eclipse过程中会有两种跟文件编码(charset)有关的情况让我们不愉快。

1 导入一个项目。
  假设你的同事做好了一个项目,为了更好的支持国际化,里面的jsp页面都采用UTF-8,然后发给你,你导入到Eclipse的workspace中,一般情况下,在Eclipse中,这些jsp都变成了GBK编码,你双击打开,一堆乱码。假设你知道原因,稍微如下设置一下可以解决问题:


(图1 设置文件编码)
但是,这个项目可能包含1000个jsp文件,且你还可能反反复复碰到这个问题,真是一个体力活。

2 改变一个项目文件的编码
这种情况发生比较少,但发生了就是一个大难题。比如公司有两个团队,一个开发的项目jsp采用UTF-8编码,另外一个采用GBK编码。一段时间之后,需要整合两个项目,jsp页面只能采用一种编码,UTF-8/GBK或其它。有经验的人知道这是一个拷贝/设置编码/粘贴的过程:
 2.1 将某个jsp的内容全部拷贝下来。
 2.2 如图1所示将编码设置为统一编码如UTF-8。
 2.3 把设置过编码的jsp文件清空,然后粘贴。
 好像解决问题很完美,但是Eclipse没有宏,如果文件很多,比如2000个,将是一个恐怖的任务。

因为这两个问题老是反复的困扰着我的同事,相信也困扰了不少Java开发者,Eclipse转码插件很好很方便的解决了这个问题,它基于Eclipse 3.3开发,所以编译环境最好采用Eclipse 3.3。

下面是使用步骤

step1. 将插件com.lifesting.tool.encoding_1.0.0.jar拷贝到eclipse/plugins目录下,重启Eclipse。

step2. 选择某个项目,右键选择properties,然后点击Convert Setting进行转码规则设置,如下图:

(图2 项目转码规则设置)
这个表格有四列,分别是文件后缀文件目前编码转换后的编码是否转换文件内容,如果转换文件内容,那么对应的是前面所说的第二种情况,不转换文件内容对应的是第一种情况。比如图2的转码规则就是对项目的jsp文件,不管原来是什么编码,统一转为UTF-8编码,并且同时转换文件内容。可以点击右边的Add /Remove按钮来增加/删除规则。最后点击Apply来保存设置。

step3. 转码
 在设置了转码规的项目上,右键选择项目,某几个文件夹或某几个文件(当然一个也可以),然后点击Lifesting Tools->Set Encoding。插件将完成转码工作。如果我们选择的是项目,将转换整个项目;如果选择的是文件夹,转换文件夹下所有满足规则的文件;如果选择的是文件,只转换文件。

(图3 转码)
除了这方式外,我们还可以利用Eclipse的文件搜索功能,将搜到的文件进行转码,如下图:

(图4 在search view里转码)
如上图所示,我们搜到了整个workspace的jsp文件,然后点击绿色E小图标,插件将会把所有满足结果的文件转码,每个文件的转换规则依赖它所属项目的转码规则设置。

posted on 2008-04-11 18:54 Always BaNg. 阅读(18401) 评论(23)  编辑  收藏 所属分类: JavaEclipse

Feedback

# re: Eclipse文件转码插件 2008-04-11 21:17 Matthew Chen
很实用,实际情况确实有可能有这样的问题,不过作为新的项目应该一开始就规约统一的编码方式。  回复  更多评论
  

# re: Eclipse文件转码插件 2008-04-12 10:05 Robin's Java World
对,新项目应该确定统一的编码方式。

另外一个问题是,如果我项目现在统一都是用的UTF-8,我想把整个项目所有的文件都改成GB2312的编码,行不行了?  回复  更多评论
  

# re: Eclipse文件转码插件 2008-04-12 22:03 Always BaNg.
@Robin's Java World
目前不行,是以文件后缀确定转码规则的,但稍微改一下源代码就可以。  回复  更多评论
  

# re: Eclipse文件转码插件[未登录] 2008-04-15 20:04 张旭
在哪下载呢  回复  更多评论
  

# re: Eclipse文件转码插件 2008-04-16 11:09 Always BaNg.
@张旭
最上面,源代码下载,二进制包下载  回复  更多评论
  

# re: Eclipse文件转码插件 2008-04-16 16:46 solo
不知.jsp文件里Content-Type值是否也同时转换了  回复  更多评论
  

# re: Eclipse文件转码插件 2008-04-16 23:03 Always BaNg.
@solo
不会转JSP 的content-type,但会转JSP的内容,比如你需要把jsp从utf-8转为gbk,那么转之后jsp的内容就是gbk编码的,但可能content-type="text/html;charset=utf-8"还是没有改变

转码只转文件和(或)文件内容的编码,*不转文件的内容*。如果再批量的转文件的内容,使用Ultraedit批量正则替换即可。  回复  更多评论
  

# re: Eclipse文件转码插件 2008-05-28 21:58 xieamao
看不到内容哟。  回复  更多评论
  

# re: Eclipse文件转码插件 2008-05-28 21:58 xieamao
看不到下载地址。  回复  更多评论
  

# re: Eclipse文件转码插件 2008-08-07 16:28 px
我用的是eclipse 3.3 下载你的源码后 ,导出的插件 eclipse不能识别呀  回复  更多评论
  

# re: Eclipse文件转码插件 2008-08-07 21:49 Always BaNg.
@px
下载二进制包一样可以使用  回复  更多评论
  

# re: Eclipse文件转码插件 2008-09-28 21:50 hademon
你是依据eclipse的text file encoding来判断编码种类的么?我觉得非常不妥。
我以前有个项目里编码很乱,有些是GBK,有些是ISO-8859-1,但是我系统默认的编码是UTF-8。然后用插件转好以后还是全乱码。
后来研究发现,如果把编码先改成gbk开始转码,则所有gbk都正常,如果编码设置城iso-8859-1,则这种编码格式的可以正常转换。

我认为编码判断应该通过程序主动判断,而不是获取。  回复  更多评论
  

# re: Eclipse文件转码插件 2008-12-07 11:36 netsesame
非常棒的工具。

不过有个问题,如果源文件是GB?编码,直接使用all->utf8,并转换文件内容,则生成的乱码无法恢复。

解决办法是先把文件转换为GBK格式,然后再通过GBK->utf8,转换内容,成功  回复  更多评论
  

# re: Eclipse文件转码插件 2009-06-01 12:09 stev
MY ECLIPSE 下面无法使用?

  回复  更多评论
  

# re: Eclipse文件转码插件 2010-06-09 15:28 darwin
zend studio 7.2不支持  回复  更多评论
  

# re: Eclipse文件转码插件 2010-06-25 09:30 hefanhappy
楼主,有个问题请教,我使用插件将UTF-8中文乱码的java文件转换成GBK编码,变成?号乱码,但是我手动resource转换却是好的! eclipse3.4 java文件默认编码UTF-8  回复  更多评论
  

# re: Eclipse文件转码插件 2010-06-25 09:43 hefanhappy
貌似只支持正常编码情况下的相互转换,不支持乱码情况下的转换@netsesame
  回复  更多评论
  

# re: Eclipse文件转码插件 2010-06-25 09:43 hefanhappy
@netsesame
貌似只支持正常编码情况下的相互转换,不支持乱码情况下的转换  回复  更多评论
  

# re: Eclipse文件转码插件[未登录] 2011-07-25 12:12 max
看不到下载地址  回复  更多评论
  

貌似只支持正常编码情况下的相互转换,不支持乱码情况下的转换 回复 更多评论  回复  更多评论
  

# re: Eclipse文件转码插件 2011-12-23 16:44 rhwelkin
支持下,也有类似问题  回复  更多评论
  

# re: Eclipse文件转码插件 2011-12-26 17:28 ricky
支持的编码太少了  回复  更多评论
  

# re: Eclipse文件转码插件 2015-08-27 08:06 navybullet
支持
  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: