IDEA控制台乱码终极解决方案
1. 问题描述
由于本机的IDEA 2019.1出现了无法连接插件商店和Spring Boot模板的问题,就重装了了最新的IDEA 2019.2.4版本,使用了一段时间以后,没有改任何的配置,控制台的中文就莫名其妙的开始乱码。使用了网上的各种办法,还是没有解决。
2. 问题的原因
由于已经试了所有的方法也没能解决,我看到别人说可能是因为IDEA在安装目录和项目的缓存目录有两份环境配置,因为如果是项目缓存配置那么即使修改IDEA安装目录的配置也无济于事,缓存目录配置依旧无法改变,所以乱码依旧。
根据这个思路,我开始测试到底是哪个地方出现了问题。首先,因为使用了Tomcat,所以可能是Tomcat使用了GBK而IDEA用了UTF-8导致的乱码,后来添加了程序内控制台输出也乱码,所以判定应该不只是Tomcat的问题,而且由于用的是Spring Boot,所以内置的Tomcat配置也不好修改。之后我突发奇想,如果我重新创建一个项目看看会不会乱码,于是用模板创建了一个Spring Boot项目,测试以后发现不管是Tomcat还是程序内输出到控制台,都没有乱码,我已经确定了就是因为因为缓存配置导致的。
3. 解决办法
既然已经知道了问题的原因,解决的办法就有了,清除缓存就可以了。
提示:在操作以下操作之前,请确保IDEA的设置正确,否则乱码可能会依旧存在。
在IDEA项目中,点击左上角的File-Invalidate Caches / Restart。

弹出警示框,选择 Invalidate and Restart。

点击按钮之后,IDEA会自动关闭并重启,如果之前项目很多很大,那么缓存的重建速度将会比较慢。
启动项目,发现控制台不管是Tomcat输出还是程序输出文本都正常了。
4. 其他解决办法
这些方法就是网友提供的方法,如果实在解决不了,要么熟视无睹,要么重装IDEA。
(1) 本地Tomcat问题
如果是使用本机的Tomcat,需要修改Tomcat的server.xml文件。
打开Tomcat的安装目录,找到conf目录下的server.xml文件并打开。
找到 protocol="HTTP/1.1" 的标签,添加 URIEncoding="UTF-8" ,效果如下。

在同目录下找到 logging.properties 文件,使用文本编辑器打开。
找到 "java.util.logging.ConsoleHandler.encoding",将值修改为 "UTF-8"。
保存并重启Tomcat即可。
也可以在IDEA里设置,不过更换项目还需要再配置,不方便。
在项目主页最上面,找到 "Run",选择 "Edit Configurations..."。
点开左侧"Templates",找到"Tomcat Server"-"Local"。
在"VM options"中输入 -Dfile.encoding=UTF-8 ,选择Apply保存,重启Tomcat即可。

(2) Spring内置Tomcat问题
打开项目的 pom.xml ,在<build>中添加plugin,重启项目即可。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.1.7.RELEASE</version>
<configuration>
<jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>
</configuration>
</plugin>
</plugins>
</build>
(3) IDEA配置问题
打开IDEA安装目录下的bin文件夹,找到两个配置文件:idea.exe.vmoptions和idea64.exe.vmoptions。
用文本编辑器打开这两个文件,分别在最后一行添加 -Dfile.encoding=UTF-8 。
保存并重启IDEA即可。

(4) IDEA字符集设置问题
打开IDEA的Settings设置界面,找到 Editor-File Encodings。
将三个下拉栏都设置为"UTF-8",保存并重启IDEA。

IDEA控制台乱码终极解决方案的更多相关文章
- IDEA使用Tomcat时控制台乱码的解决方案>从零开始学JAVA系列
IDEA使用Tomcat时控制台乱码的解决方案 解决方案1,修改启动时虚拟机参数 解决方案2,修改idea的设置 解决方案3,修改idea配置文件 在最后添加一行 '-Dfile.encoding=U ...
- Cygwin 各种情况下中文乱码--终极解决方案
0.引言 本人从进公司以来一直负责公司Android平台下产品的NDK开发,用的工具: 01. Google的adt-bundle(集成了eclipse和sdk) 02. NDK 03. Cygwin ...
- xampp3.2下mysql中文乱码终极解决方案
xmapp3.2.2中mysql已经被替换成了Mariadb,网上那些显示char语句已经失灵. 另外本文主要介绍的是手动在mysql中写入中文乱码问题 那么我们将采用如下三个步骤解决乱码问题 1.打 ...
- mysql 在 win 安装 最全攻略(附转载的乱码终极解决方案)以及解决data too long for column 'name' at row 1, 一种可能就是因为编码一致性问题.
[博客园cnblogs笔者m-yb原创,转载请加链接,公众号aandb7, github.com/mayangbo666,QQ群927113708] https://www.cnblogs.com/m ...
- HttpUrlConnection post 乱码 终极解决方案
今天遇到了java后台模拟http请求,以POST方式传参中文乱码,google了一下,大部分是在打开的HttpURLConnection的输入流的时候设置编码(utf-8),按照设置,试了下并没有解 ...
- IDEA 文档注释 乱码 终极... 解决方案
idea bin 目录 下 phpstorm64.exe.vmoptions 最后一行添加 : -Dfile.encoding=UTF-8
- vim、gvim 在 windows 下中文乱码的终极解决方案
vim.gvim 在 windows 下中文乱码的终极解决方案 vim ~/.vimrc 然后加入: " Gvim中文菜单乱码解决方案 " 设置文件编码格式 set encodin ...
- 【转】JSP中文乱码问题终极解决方案
原文地址:http://blog.csdn.net/beijiguangyong/article/details/7414247 在介绍方法之前我们首先应该清楚具体的问题有哪些,笔者在本博客当中论述的 ...
- VIM、GVIM在WINDOWS下中文乱码的终极解决方案
文章转自:http://www.liuhuadong.com/archives/68 vim.gvim在windows下中文乱码的终极解决方案在windows下vim的中文字体显示并不好,所以我们需要 ...
随机推荐
- python3实现unix域协议(tcp、udp)通讯
socket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIXDomain Socket.虽然网络socket也可用于同一台主机的进程间通讯(通过loopb ...
- UVA572 (并查集解法)
紫书第六章的题,用并查集重写一遍,果然还是书上给的dfs方法更简单...... 一开始用fa[i*m+j] != i*m+j 来判断是否访问过,虽然没想出来为什么WA,但是确实不如用vis稳 #inc ...
- 17.centos7基础学习与积累-003-命令练习01
1.从头开始积累centos7系统运用 大牛博客:https://blog.51cto.com/yangrong/p5 linux命令的学习: 创建目录:mkdir mkdir /data mkdir ...
- 【Java】深拷贝和浅拷贝
Java中的对象拷贝(Object Copy)指的是将一个对象的所有属性(成员变量)拷贝到另一个有着相同类类型的对象中去.举例说明:比如,对象A和对象B都属于类S,具有属性a和b.那么对对象A进行拷贝 ...
- Iconfont——实现字体图标的反转
前言 有时候找不到刚好合适的字体图标,只好找个差不多的然后再通过css再进行调整. 调整 水平反转 .icon-shexiangji1 { color: #f64e78; font-size: 20p ...
- 2019-2020-1 20199312 《Linux内核原理与分析》 第八周作业
ELF(Executable and Linkable Format)可执行的和可链接的格式.(对应Windows为PE) 其包含了以下三类: 可重定位文件:保存着代码和适当的数据,用来和其它的目标文 ...
- JS判断移动端访问设备并加载对应CSS样式
JS判断不同web访问环境,主要针对移动设备,提供相对应的解析方案(判断设备代码直接copy腾讯网的) // 判断是否为移动端运行环境 if(/AppleWebKit.*Mobile/i.test(n ...
- 使用 HttpClient 进行 Post 方式通信
1.TestPost.java package testhttpclient; import java.io.IOException;import java.util.ArrayList;import ...
- learning java 字符串常用操作
// 字符串索引取值 "; System.)); // 字符串比较 "; "; "; System.out.println(s1.compareTo(s2)); ...
- cube.js 学习(二)cube.js与 graphql2chartjs的比较
cube.js 是目前看到从设计以及理念上很不错的数据分析事件,graphql2chartjs 是hasura graphql-engine 团队开发 的一个类库基于graphql,以下做一些比较 c ...