idea控制台输出中文乱码解决

2023-11-09

解决Intellij IDEA控制台logger.info,system.out.println等中文乱码问题

当我们使用Intellij IDEA开发时,首当其冲就是中文乱码问题,造成中文乱码的根本原因是开发工具和系统环境编码格式不匹配,这篇文章能100%完美解决你所有乱码问题。

乱码主要分为如下2种大类

一 : 编写环境乱码

一 : 解决编写环境乱码

  1. 首先是编译器语言 file -> settings ->Appearance(外观) -> theme(主题设置) -> use custom font
    (最好不设置采用默认语言,或选择如下图能支持中文的语言,避免出现中文乱码)
    在这里插入图片描述

  2. 设置工程项目编码 file -> settings -> Editor -> File Encodings-> 如下图通通UTF-8
    在这里插入图片描述

二 : 控制台打印乱码(又包含3种):

      IDEA启动时控制台打印乱码
      log4j的logger.info()控制台打印乱码
      system.out.println()控制台打印乱码(sout是基于GBK编码的)

二 : 解决控制台打印乱码(3种)

  1. IDEA Tomcate启动时控制台打印乱码
    在这里插入图片描述

根据Intellij IDEA控制台输出,Tomcat Catalina Log出现乱码,因此可以将问题定位到Tomcat上。那么,我们看看Tomcat控制台是否出现乱码。如老夫所料果然乱码,见下图。
在这里插入图片描述

解决IDEA Tomcat输出乱码一共两种方案任选一种即可,备注:如下(方案一)与(方案二)不能同时设置。

(方案一)

用Notepad++打开Tomcat安装源码conf文件夹下的logging.properties文件。
在这里插入图片描述

如下logging.properties文件内容,将下图标记的UTF-8改为GBK
在这里插入图片描述

备注:只修改第五个java.util.logging.ConsoleHandler.encoding = GBK,其它4个可以不修改,效果一样。
在这里插入图片描述

打开Intellij IDEA,乱码问题解决

再打开Tomcat控制台也不显示乱码

在这里插入图片描述

(方案二)

打开Intellij idea安装目录,在bin目录下的idea.exe.vmoptions和idea64.exe.vmoptions两个文件结尾添加

-Dfile.encoding=UTF-8(注意不要出现空格)
在这里插入图片描述在这里插入图片描述

接着再修改idea配置Help ->Edit Custom VM Options
在这里插入图片描述

在后面添加:-Dfile.encoding=utf-8

重启IDEA开发工具(一定要重启),再启动工程,乱码问题解决。

备注:
a.该方法只解决IDEA下tomcate启动控制台乱码,没法像(方案一)能把tomcate命令控制台乱码一起解决。能解决前者就足够,毕竟tomcate命令控制台我们又不用。

b. idea.exe.vmoptions和idea64.exe.vmoptions两文件可不改,直接改idea配置Help ->Edit Custom VM Options便可。
保险起见全改

  1. log4j的logger.info()控制台打印乱码 和 system.out.println()控制台打印乱码

    采用(方案一)会出现logger.info()打印中文乱码,system.out.println()打印中文正常

    采用(方案二)会出现logger.info()打印中文正常,system.out.println()打印中文乱码

    (方案一)和(方案二)又不能同时设置,个人推荐(方案二)+ 配置Tomcat VM options值为:-Dfile.encoding=UTF-8(解决system.out.println()乱码问题)达到我们目的。
    在这里插入图片描述

  2. 如果已经按照前面设置都没问题,但是仍然还是乱码,怎么解决?,这个时候只有一种解释:IDEA把你的字体编码弄错了,怎么解决了?在项目的目录下有个.idea的文件夹,这个文件夹里有个encodings.xml的文件。里面记录了你某些文件对应的特殊编码,为什么会有这种编码呢,有时我们无意中点了右下角的编码,改了一下,就被idea记录到 encodings.xml中,当你再次访问的时候,它就会用那种编码。IDEA这么能干你妈知道吗?只要把encodings.xml里面的除了UTF-8的都删了就好啦(我的所有字体都是UTF-8)!或者把encodings.xml文件干掉(会重新生成)

在这里插入图片描述
原文地址 – https://blog.csdn.net/heweiwei520/article/details/107435634.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

idea控制台输出中文乱码解决 的相关文章

随机推荐

  • springboot集成积木报表JimuReport,打成war包放到tomcat下运行报错,启动过滤器异常

    springboot集成积木报表JimuReport 打成war包放到tomcat下运行报错 启动过滤器异常 这里用的tomcat8 5 这个问题真是找了半天都没解决 真是栓Q啊 把war包放到tomcat9 0下运行 就正确了 一定注意
  • 初学者必看Markdown 使用指南

    什么是 Markdown Markdown 文档遵循一种特定的语法 容易阅读和写作 它们是纯文本 所以能够通过电脑上的任何文本编辑器来创建 然后这些文档能够转换成网页 而网页是用一个叫做 HTML 的语言标记创建的 Markdown 只是一
  • Microsoft Office 2003的安装

    哈喽 大家好 今天一起学习的是office2003的安装 这个老版本的office可是XP操作系统的老搭档了 有兴趣的小伙伴也可以来一起试试手 一 测试演示参数 演示操作系统 Windows XP 不建议win7及以上操作系统使用 系统类型
  • 文件使用磁盘的实现--OS

    文件使用磁盘的实现 通过文件使用磁盘 代码如下 在fs read write c中 int sys write int fd const char buf int count fd为文件索引 buf为缓冲区 count表示要处理的字符串长度
  • 图的遍历(BFS和DFS)

    一 遍历 lt 1 gt 遍历 把所有元素都看一遍 每看到一个元素 针对条件进行处理 lt 2 gt 线性逻辑 顺序存储 void fun1 type data int num for int i 0 i lt num i 逐个处理 typ
  • QT 通信之 QByteArray

    QT上位机的串口通信发送和接收数据都需要用到QByteArray QByteArray存储的是char型字符 但QByteArray提供的数组操作 比char更方便 这篇文章主要讲一下QByteArray在实际应用中的一些函数 以及QBby
  • 机器学习5:评估器estimator

    要定义与tf estimator一起使用的自定义模型 需要使用tf estimator Estimator tf estimator LinearRegressor 线性回归实际上是一个tf estimator Estimator的子类 我
  • ASCII码对照表(十进制和十六进制)

    表 A 1 DEC 多国字符集 十六进制代码 MCS 字符或缩写 DEC 多国字符名 ASCII 控制字符 1 00 NUL 空字符 01 SOH 标题起始 Ctrl A 02 STX 文本起始 Ctrl B
  • CentOS下载ISO镜像的方法

    目录 一 CentOS 介绍 二 进入CentOS 官方网站 三 步骤 一 CentOS 介绍 CentOS 中文意思是社区企业操作系统是Linux发行版之一 是免费的 开源的 可以重新分发的开源操作系统 CentOS Linux发行版是一
  • JDK1.8新特性——lambda表达式和函数式接口

    一 lambda表达式 1 概念 Lambda表达式时一种特殊的匿名内部类 语法更加简洁 Lambda表达式允许把函数作为一个方法的参数 函数作为方法参数传递 将代码像数据一样传递 这里的匿名内部类的理解 我们可以在下述情况中来帮助大家了解
  • 服务器运行多个安卓系统,一台服务器可以做几个云手机

    一台服务器可以做几个云手机 内容精选 换一换 本文介绍使用云手机服务时需要了解的基本概念 云手机是一台包含原生安卓操作系统 具有虚拟手机功能的云服务器 简单来说 云手机 云服务器 Android OS 您可以远程实时控制云手机 实现安卓AP
  • linux 批量解压gz文件夹,linux 批量解压gz bz2文件

    一 批量解压bz2文件 find maxdepth 1 name bz2 xargs i tar xvjf 这条命令可解压当前目录下的所有bz2文件 批量解压是比较郁闷的事 以前尝试各种方法 甚至用脚本循环语句解压都不行 现在发现这条命令可
  • JSON对象转换成Byte(字节)数组

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 如果你不了解JSON对象 请看这里 JSON对象转换成 byte 数组 Byte byteArray Byte jsonData bytes NSLog s byteArr
  • 如何追踪泄漏者信息?软件保护工具VMProtect独有水印快速锁定目标!

    VMProtect是一种很可靠的工具 可以保护应用程序代码免受分析和破解 但只有在应用程序内保护机制正确构建且没有可能破坏整个保护的严重错误的情况下 才能实现最好的效果 VMProtect提供了一种独特的功能 可以将有关受保护文件所有者的隐
  • 基于Python的微博大数据舆情分析,舆论情感分析可视化系统

    运行效果图 基于Python的微博大数据舆情分析 舆论情感分析可视化系统 系统介绍 微博舆情分析系统 项目后端分爬虫模块 数据分析模块 数据存储模块 业务逻辑模块组成 先后进行了数据获取和筛选存储 对存储后的数据库数据进行提取分析处理等操作
  • LeetCode 541. 反转字符串 II

    题目链接 https leetcode cn problems reverse string ii C 代码如下 class Solution public string reverseStr string s int k int n s
  • vant ui Swipe pc端滑动失效

    这里我使用了vant的Swipe组件 由于vant是移动端的组件库 对pc端会有兼容性问题 例如Swipe 移动端是 touch 该组件做了相应的监听 而PC端是 mouse 没有做对应的监听 因此在pc端无法用鼠标拖动图片 1 安装插件
  • redis BITFIELD详解

    支持子命令和整型 本命令会把Redis字符串当作位数组 并能对变长位宽和任意未字节对齐的指定整型位域进行寻址 下面是已支持的命令列表 GET
  • MYSQL深入学习(一)

    1 mysql 体系结构 连接池组件 管理服务和工具组件 sql接口组件 查询分析器组件 优化器组件 查询缓存组件 插件式存储引擎 mysql的特点 可以根据需求 动态的配置存储引擎 物理文件
  • idea控制台输出中文乱码解决

    解决Intellij IDEA控制台logger info system out println等中文乱码问题 一 编写环境乱码 二 控制台打印乱码 又包含3种 当我们使用Intellij IDEA开发时 首当其冲就是中文乱码问题 造成中文