Intellij IDEA控制台乱码的问题
在windows的java开发环境下我们习惯使用IDEA,通过IDEA配置tomcat的方式启动web项目,偶尔会遇到IDEA的tomcat控制台打印乱码的问题,如下:
终究原因是IDEA的编码方式与tomcat的编码方式不一致导致的。
在windows环境下系统默认的编码方式为GBK,IDEA自己本身也是java的进程,其自身也有jvm运行参数,可以通过Help->Edit Customer VM Options看到:
因为没有指定jvm的编码方式,所以默认采用的是系统的GBK编码。在配置tomcat的时候,倘若不指定jvm的参数,则默认也是采用系统的编码(GBK)
此时两者的编码方式一致,所以此时启动tomcat不会导致乱码:
倘若系统中引用文件或者因为其它原因需要使用UTF-8的编码,需要在tomcat的启动参数中加入:-Dfile.encoding=utf-8的参数,此时因为IDEA是GBK编码,tomcat启动java是用了UTF-8编码,两者不一致,就会造成文章开头出现的乱码问题。
所以乱码的解决方法就是将双方的编码方式变成一致即可,要么在IDEA的jvm参数中加入utf-8的编码(加完后需要重启IDEA才能生效):
要么就是去掉tomcat的jvm启动参数,总之就是保证两方的编码方式必须保持一致才可以。