一般是获取编译main class的文件编码,但是这个编码是由容器或者jvm来决定的,
所以一定要设置tomcat/jetty等容器的编码为utf-8
场景1——修改JVM系统字符集
系统默认的字符集是指,JVM运行时调用java.nio.Charset.defaultCharset().displayName()所显示的字符集。我们有如下几种方式更改JVM在运行时的系统字符集:
方法1
Properties pps=System. getProperties();
pps.put("file.encoding","<your-charset>");
System.setProperties(pps);
方法2
System.setProperty("file.encoding","<your-charset>");
方法3
java -D file.encoding=<your-charset>
上表中尖括弧斜体部分应该替换为你想要的字符集。
需要注意的是,如果是在运行时更改了字符集,那么再调用java.nio.Charset.defaultCharset().diaplayName()可能并不会变,因为Charset源码对default charset做了内容缓存,具体可查看Charset源码
[color=red][b]最重要的是 讲 vm arguments 设置为 -Dfile.encoding=UTF-8[/b][/color]
http://blog.51cto.com/9797337/1767774
[img]http://dl2.iteye.com/upload/attachment/0130/1973/ff85dcca-50e9-3a89-a40b-cd07374cc210.png[/img]
[img]http://dl2.iteye.com/upload/attachment/0130/1975/ddfa0ccd-d966-3ea5-9a76-022b87e748ef.png[/img]
所以一定要设置tomcat/jetty等容器的编码为utf-8
场景1——修改JVM系统字符集
系统默认的字符集是指,JVM运行时调用java.nio.Charset.defaultCharset().displayName()所显示的字符集。我们有如下几种方式更改JVM在运行时的系统字符集:
方法1
Properties pps=System. getProperties();
pps.put("file.encoding","<your-charset>");
System.setProperties(pps);
方法2
System.setProperty("file.encoding","<your-charset>");
方法3
java -D file.encoding=<your-charset>
上表中尖括弧斜体部分应该替换为你想要的字符集。
需要注意的是,如果是在运行时更改了字符集,那么再调用java.nio.Charset.defaultCharset().diaplayName()可能并不会变,因为Charset源码对default charset做了内容缓存,具体可查看Charset源码
[color=red][b]最重要的是 讲 vm arguments 设置为 -Dfile.encoding=UTF-8[/b][/color]
http://blog.51cto.com/9797337/1767774
[img]http://dl2.iteye.com/upload/attachment/0130/1973/ff85dcca-50e9-3a89-a40b-cd07374cc210.png[/img]
[img]http://dl2.iteye.com/upload/attachment/0130/1975/ddfa0ccd-d966-3ea5-9a76-022b87e748ef.png[/img]