Eclipse、IDEA环境下设置jvm默认编码

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014424628/article/details/49429393

这这有个小程序,大家可以在自己机器上跑一下:

import java.nio.charset.Charset;

public class Encoding {
    public static void main(String[] args) {

        System.out.println(System.getProperty("file.encoding"));
        System.out.println(Charset.defaultCharset().name());
    }
}

打印结果是什么?
GBK
估计大多数人的机器打印的结果是GBK?因为我们很多人系统默认编码就是GBK.
我们查看jdk文档可以看到:
//java.nio.charset.Charset
static Charset defaultCharset()
Returns the default charset of this Java virtual machine.
//java.lang.System
static String getProperty(String key)
Gets the system property indicated by the specified key.

上面两个说白了上面两个方法获得的是系统默认的字符集编码,所以我们一般获得的是GBK,因为我们大部分用的是中文版的window系统。。。。。

但是我们能不能改呢?肯定能!
eclipse上
右键工程–>properties–>Resource–>textfileEncoding
如图所示
看到这里的GBK了吧,也许你早就改过了,所以前面运行结果不是GBK。
试试改成utf-8,再运行程序。是不是发现运行结果变成utf-8了?
为了统一编码,这里我们通常设置成utf-8
IDEA上
File–>Settings–>File Encodings–>Project Encoding
这里写图片描述
我们改成iso8859-1试试
输出是不是变成了iso8859-1。为了统一编码我们还是改回utf-8吧。【如果你之前没有改过idea的编码,这个位置还有其它几个位置编码可能就是system default即GBK】

这样就完了?
no,no,no!!
我们试着建立一个web项目,web容器采用tomcat
这里写图片描述
好大的两个GBK…….【声明:IDEA上工程,文件的字符集编码已经设置成了UTF-8,所以不要怀疑是这个原因。】
那么,到底是什么原因呢?我们之前明明就是这样改的,而且成功了哎。

我只想说:可能web项目比较特殊吧,毕竟它运行的时候借助了web容器,比如这里我们使用的是tomcat容器。
那么我们该如何让其回归utf-8呢?
方法当然有,如下:
来到tomcat配置界面:添加虚拟机启动参数:-Dfile.encoding=UTF-8
这里写图片描述
我们再来运行一遍:
这里写图片描述
utf-8出来了,有木有。
纳尼,控制台出现了鸟文?
我们继续对IDEA做点修改。
打开idea安装目录下的bin文件夹,找到idea.exe.vmoptions文件并打开
添加一条配置信息:-Dfile.encoding=UTF-8
这里写图片描述
ok,重启idea,再次运行web项目
这里写图片描述
世界顿时又美好了。

猜你喜欢

转载自blog.csdn.net/u014424628/article/details/49429393