大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
以前一直使用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即可。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/189263.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...