本站使用了 Disqus 评论框,如需留言请扶墙

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.xmlch.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

下面是问题截图

Sendya

Read more posts by this author.