System.getProperty("file.encoding") 究竟获取的是什么编码

一般是获取编译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]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值