IDEA中Tomcat日志乱码问题解决

       以前一直使用Eclipse,现在试用IDEA,遇到一些坑,通过网上的答案基本都解决了,但有些答案不好,比如这个问题。

1、原因分析

     Tomcat运行Java Web的程序,在IDEA控制台中输出显示,我们一般都是用UTF8编码。

     从Java源码到IDEA控制台,大致分为几个阶段:

     1)源码:即*.java原文件,是纯文本文件。

     编码方式在IDEA的Settings>Editor>File Encodings中设置;

     2)编译器:将源码编译成*.class文件。

     调用JDK的javac编译器实现,通常可以使用下述命令指定编码:

           javac -encoding utf-8 xxxx.java

     通常IDE会根据源文件格式设置。编译以后的Java类文件,内部统一用UTF16编码。

     3)运行环境:即通过Java运行环境运行编译后的Java程序。

     这里涉及的主要是命令行输出,Java程序运行时,会根据输出环境,将内部的UTF16编码转换成响应编码。   

     写入日志会调用系统标准输出,默认使用的是系统默认编码,中文Windows10一般是GBK(即cp936)。可以通过chcp命令查看。

     4)Tomcat日志输出程序,一般调用系统的标准输出。

       Tomcat本身的日志输出,通过%TOMCAT_HOME%/conf/logging.properties文件来配置,一般缺省是UTF8。

     5)IDEA的控制台输出。

      Tomcat日志,会被重定向到IDEA的控制台输出。IDEA的控制台编码,在Settings>Editor>General>Console中设置。一般默认是系统编码,即GBK。

      通常日志输出乱码,必然是上述步骤某处的编码不一致。

2、解决办法

    就我遇到的问题来说,把IDEA中Settings>Editor>General>Console的编码设为UTF-8即可。

  • 23
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值