gpt4 book ai didi

java - Intellij tomcat 服务器控制台编码问题与 log4j 的编码 = UTF-8?

转载 作者:行者123 更新时间:2023-11-28 22:01:59 25 4
gpt4 key购买 nike

我有一个奇怪的问题,我使用 log4j 将日志打印到打印错误字符的控制台,但使用 System.out.println 工作正常。

我已明确将编码设置为 UTF-8:

log4j.rootLogger=DEBUG,console,error
####################Conole logs######################
log4j.appender.console= org.apache.log4j.ConsoleAppender
log4j.appender.console.encoding=UTF-8 ###Here , if I commented this line, it works fine
log4j.appender.console.Threshold = DEBUG
log4j.appender.console.layout=org.apache.log4j.SimpleLayout
log4j.appender.console.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

同一行,我使用:

        LogUtil.debug(line);
System.out.println("from system.out: "+line);

控制台:

DEBUG - 閭d簺骞存垜浠竴璧疯拷杩囩殑濂冲=鑷存垜浠粓灏嗛�濆幓鐨勯潚鏄�
from system.out: 那些年我们一起追过的女孩=致我们终将逝去的青春

但是如果我注释掉 log4j.appender.console.encoding=UTF-8,它就可以工作了!

请注意,以前使用eclipse时,现有代码运行良好,但今天我尝试在我的IDEA14上运行它,然后发现问题。

猜想这可能是默认控制台上的一些编码设置问题?

PS:我把项目的编码也设置为UTF-8

最佳答案

Java 使用环境提示在 System.out 上设置适当的编码,例如 locale 或代码页 (chcp)。

据我所知,Intellij 使用项目的字符编码来设置解释的控制台编码。

通过在 Log4j 中定义编码,您可能会进行双重编码或选择错误的编码,正如您所发现的那样。

关于java - Intellij tomcat 服务器控制台编码问题与 log4j 的编码 = UTF-8?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34396026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com