Eclipse在Windows下用UTF-8为默认编码引起乱码问题


由于经常要在Linux和Win下面进行双系统切换,我在Ubuntu下面的默认编码斗数使用UTF-8的,这样在Eclipse在Windows中打开这些项目的时候,虽然可以手动设定WorkSpace的编码,手动设定项目工程和Content Types的所有文件编码都为UTF-8,使得项目内已经存在的文件都可以正常浏览,但是新建的文件,包括从文件模板新建的文件都是默认GBK的虽然这些GBK文件在下次保存的时候会被Eclipse转换成UTF-8编码保存,但是如果你之前在一些文件或者类的模板/注释里面插入了中文或者某些模板变量产生了中文字符(比如${time}标签产生的“上午/下午”),这些GBK编码的文字在Eclipse里面就不能正常显示,必须从外部编辑器打开手动转储为UTF-8编码才行,否则在Eclipse进行文件创建后的第一次保存的时候,文件会以UTF-8保存,导致这些GBK字符以乱码的形式保存,从而导致汉字注释丢失。
一直很头疼为啥从模板新建的文件都是ANSI/GBK的,找了很多资料,无非是你抄我,我抄你,都不能解决问题,更有甚者建议开发平台全部迁移到Linux下面去(颇有莫罕默德尊者山不过来我过去的气势)。
我觉应该是JVM默认文件编码的问题,想过修改JVM启动参数为UTF-8,可是这样会影响其他Java程序的变量,可能会有其他不可遇见的问题,于是想到了Eclipse的引导文件:eclipse.ini
如下是一个典型的Eclipse引导文件

-startup
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.100.v20110502
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Xms40m
-Xmx384m

其中-vmargs的意思是设置JVM参数,所以后面的其实都是JVM的参数了。这样我们可以把JVM的参数加在后面,而不影响其他程序
最后加一行

-Dfile.encoding=UTF-8

重启Eclipse,发现从模板新建的文件中文注释都不会乱码了,WorkSpace的默认编码也变成了UTF-8
终于可以舒舒服服的开始写点东西了


注意:Java中如果你的命令行和参数之间用空格分隔的命令,比如-vm d:\bin\javaw.exe
那么写道eclipse.ini里面就必须分开两行写,还有路径或者选项中有空格的话 自然也要双引号啦

Author Info :
  • From:Eclipse在Windows下用UTF-8为默认编码引起乱码问题
  • URL:http://blog.ihipop.info/2011/08/2690.html
  • Please Reserve This Link,Thanks!
  • 《Eclipse在Windows下用UTF-8为默认编码引起乱码问题》有2个想法

    发表评论

    电子邮件地址不会被公开。 必填项已用*标注