[导入]解决JBUILDER 2007使用XDOCLET时的乱码问题

经过一下午的研究,总算解决了困扰我的XDOCLET输出文件中文乱码的问题。

造成这个问题的罪魁祸首是JBuilder 2007,他没有提供XDoclet的Build File的全面的设置功能.

XDoclet本身在Ant Task文件里提供了针对源文件的编码设置。只要在Build.xml的Task节加上encoding="ENCODING",就可以了。比如:

<ejbdoclet
        encoding="UTF-8"
             destdir="${ejb.module.gen}"
             mergedir="${xdoclet.merge.dir}"
             excludedtags="@version,@author,@todo"
             addedtags="@wtp generated"
             ejbspec="${ejb.spec.version}"
             force="${xdoclet.force}"
             verbose="true" >

而Jbuilder 2007里,并没有提供针对XDoclet的Encoding的设置。这时,XDOCLET默认的输入编码是系统编码,输出编码就是UTF-8(不清楚是不是全部是这样,反正在我这里是这样),所以,当我们在WINDOWS下工作时,它的默认源文件编码是GBK。当你的工程源文件的编码不是GBK时,则生成的文件里的中文就会是乱码了。

解决的方案很简单:建立一个自己的Build.xml,在task节里加上ENCODING属性就可以了。

推荐在Jbuilder 2007生成的TempAnt.xml的基础上改。方法是,将%WORKSPACE%\.metadata\.plugins\org.eclipse.jst.j2ee.ejb.annotations.xdoclet\下的tempAnt.xml和build.properties两个文件导入到工程根目录下,然后再修改。

注意:当你的工程又添加了新的源文件后,你可能需要修改这个文件内的<fileset>以包涵进新的文件。我的选择是,每当这时,又重新把JBUILDER生成的文件复制过来添加ENCODING。

最后,你需要修改工程的属性里的Builders,去掉XDoclet Builder前的勾。添加一个新的Ant Builder,如下图:

并把这个BUILDER移到最上面。如图:
编译一下看看,是不是没有乱码了?

类别:Jbuilder2007 查看评论
文章来源:http://hi.baidu.com/hizsk/blog/item/1e954b2368690a539822edb5.html
posted @ 2008-11-08 23:40  绝殇  阅读(393)  评论(0编辑  收藏  举报