IDEA Windows 环境 console 乱码问题

系统环境:Windows 10
使用 IDE: IntelliJ IDEA 2016.3
问题简单描述:
创建新
spring boot
项目,启动后控制台输出的中文乱码
启动VM Optins
增加编码配置
-Dfile.encoding=UTF-8
也无法解决乱码的相关问题..
前段时间公司开新项目,为了便于开发 使用的 Spring boot
。
在项目基本配置完成时,发现 IDEA 的 console
输出日志是乱码。
项目代码保存采用的 UTF-8,以及 VM Optins
增加参数 -Dfile.encoding=UTF-8
。
重启测试.. 乱码依旧!
重新确认代码编码是 UTF-8 运行 tomcat 时,发现日志文件输出的内容不是乱码
随即给 tomcat VM options
加上 -Dfile.encoding=UTF-8
再次尝试
发现还是乱码,网上查的教程大部分都说给 catalina
增加 JAVA_OPTS
encoding=GBK
但是改 GBK
会导致 GET / POST 参数和程序接收的编码不一致。
后测试给 logback.xml
的 ch.qos.logback.core.ConsoleAppender
项输出配置编码修改为 GBK
却能解决编码问题
如下:
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>GBK</charset>
</encoder>
</appender>
但是这样配置的情况下,每次开个新项目都要把 logger
的控制台输出改为 GBK
那部署到 linux
服务器岂不是得改回来,不然跑 linux
也会出现乱码。
后来看到一篇文章说 中文的 Windows
默认是采用的 GBK
编码,并且 IDEA
启动时默认继承了系统的编码
所以 IDEA 是以 GBK
编码运行的,才导致控制台输出是乱码,日志文件保存的是正常编码。
解决方法:
进入 IDEA 安装目录 如 C:\Program Files (x86)\JetBrains\IntelliJ IDEA 2016.3\bin\
修改 idea.exe.vmoptions
或者是 idea64.exe.vmoptions
(请根据你所使用的 32位 或 64 位)
IDEA 的启动环境配置文件,将 IDEA 环境设定为使用 UTF-8
编码启动
增加的配置内容如下:
-Dfile.encoding=UTF-8
完整内容如下:
-Xms128m
-Xmx750m
-XX:ReservedCodeCacheSize=240m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-Dfile.encoding=UTF-8
如果解决后控制台还是乱码,请指定 tomcat 的启动脚本环境变量 JAVA_OPTS
增加参数
-Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8
下面是问题截图