第一种方式:修改eclipse的配置文件java
打开{ECLIPSE_HOME}/eclipse.ini文件web
在最后一行加上属性:sql
-Dfile.encoding=utf-8
第二种方式:手动设置eclipse
1.修改文件编码jsp
修改Java Class File的编码集工具
Window-->General-->Content Types-->Java Class File-->Default encoding-->UTF-8-->Update(utf-8大小写无所谓)开发工具
修改其它类型文件的字符集(CSS,HTML,JS,JAVA,XML等)测试
注意:设置Text时,CSS,HTML,JS,JAVA,XML等文件的编码集都会被修改成UTF-8,可是,jsp文件仍是采用的iso-8859-1。编码
须要手动修改为utf-8,再点击Update。spa
2.更改eclipse的工做空间
Window-->General-->Workspace-->Text file encoding-->Other-->UTF-8-->Apply
3.检查Web目录下Files文件的编码集
CSS Files,HTML Files,JSP Files的字符集是否已是utf-8,若是不是,记得更改。
4.检查XML目录下Files文件的编码集
至此,eclipse文件的字符集已经彻底被设置为utf-8了。
5.修改项目的字符集
选中项目--》右键--》Properties--》Resource--》-->Text file encoding-->Other-->UTF-8-->Apply
第一步:新建一个Test.java类。
public class Test { public static void main(String[] args) { String str = "这里必须用中文才能测试出来当前java文件的字符集!"; System.out.println(str); System.out.println("JVM采用的怎样的字符集解析class文件:" + Charset.defaultCharset().name()); } }
第二步:查看该文件所在的磁盘位置,并复制
选中该类--》右键--》Properties--》Location显示的就是该类所在的本地路径,复制该路径
第三步:打开cmd命令窗口
win+r--》输入:cmd--》肯定
命令进入到该目录下
输入:d:--》回车进入到d盘根目录下--》cd D:\workspace-eclipse\yyproject\src\dzkjk\web\tools
第四步:使用java命令进行编译
输入:javac Test.java--》回车,查看执行结果。
说明:
要想在cmd下执行java命令,首先须要配置环境变量;
若是编译报错信息为:编码GBK的不可映射字符,则证实Test.java文件的编码集为UTF-8,不然,若是可以成功编译,则证实该文件的字符集为GBK。
测试的类只有用中文,测试测出来该类的字符集,由于:在脱离了eclipse后,不管java文件的编译仍是运行都是有操做系统的语言决定的。
另外,你可能会说,在第二步中,直接右键属性,就能看到当前java类的字符集了。
这,没毛病,可是咱们没办法这样就下结论说:该文件的字符集就是utf-8,不信?我们继续探索。
咱们在notepad++里测试一下。
第一步:打开notepad++,新建一个文件,并将上述的代码复制到该文件中
第二步:保存文件
将该文件保存到桌面,文件名为Test.java
第三步:将文件字符集设置为utf-8无BOM格式编码
进行保存。
第三步: cmd切换到桌面目录。
第四步:编译该文件
接下来就会发现有趣的事情:
若是,汉字你是从eclipse中复制过来的,编译报错信息一致。
可是,若是你是经过notepad++,进行过修改,且内容为中文。
你会发现:测试这两个字,在编译的时候没有报错。
咱们把最后一行代码删掉,结果:编译成功。
桌面,也生成了Test.class文件。
咱们使用java反编译文件,打开看看什么状况。
怎么样?乱码!!!
这说明什么?
第一,当java文件的字符集设置成utf-8后,在eclipse下进行开发,能够保证该文件里的内容就是utf-8,毋庸置疑;
第二,当java文件的字符集设置成utf-8后,在notepad++下进行开发,涉及到中文的地方,中文的字符集还是GBK,而不是utf-8;
第三,当java文件的字符集设置成utf-8后,经过查看java文件的字符集的方式,并不能证实该文件就是utf-8编码格式;
第四,java反编译工具会自动解析class文件的字符集,而后以该文件的字符集解析文件内容。
第五步,还原java代码,从新编译。
刚才忘了导包,如今加上。
编译的时候,告诉java,该文件的字符集是多少。
javac -encoding utf-8 Test.java
编译成功。
-encoding 字符集,就是告诉javac.exe在执行编译命令时,以utf-8的格式进行编译。
(前面已经提到:脱离eclipse执行的java操做,在没有明确指明的状况下,不管java文件的编译仍是运行都是由操做系统的语言决定的,Windows语言是GBK)
第六步,查看生成的class文件。
中文展现没有乱码,完美。
这也告诉咱们,能用开发工具进行开发的时候,尽可能借助eclipse来实现。