Spring Boot日志UTF-8编码异常问题求助
解决Java日志输出UTF-8字符乱码问题
问题描述
定义字符串String name = "Marco Nuñez",通过LOGGER.debug输出时显示为NU�EZ。已尝试以下操作但未解决:
- 在pom.xml中设置
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>等编码属性 - 将IntelliJ项目编码改为UTF-8
- 用命令
mvn spring-boot:run -Drun.jvmArguments="-Dfile.encoding=UTF-8"启动项目
测试代码LOGGER.debug("JAIRO RAFAEL NUÑEZ ALEMAN")输出仍乱码。mvn -verbose显示平台编码为UTF-8,但通过LOGGER.debug("My project encoding is : "+ Charset.defaultCharset());得到默认编码为windows-1252。仅通过System.setOut(new PrintStream(new FileOutputStream(FileDescriptor.out), true, StandardCharsets.UTF_8));可使控制台输出正常,需彻底解决项目及字符串的UTF-8编码问题。
解决方案
1. 强制JVM启动参数指定UTF-8编码
确保JVM启动时同时设置文件编码和系统编码参数,避免环境覆盖:
- IntelliJ启动配置:打开Run/Debug Configurations,在VM options中添加
-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 - Maven启动命令:使用
mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8"(Spring Boot 2.x+推荐用spring-boot.run.jvmArguments)
2. 配置日志框架输出编码(关键)
乱码常出现在日志框架层面,需为控制台输出指定UTF-8编码:
- Logback配置(
logback.xml/logback-spring.xml):<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <charset>UTF-8</charset> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> - Log4j2配置(
log4j2.xml):<Console name="Console" target="SYSTEM_OUT"> <PatternLayout charset="UTF-8" pattern="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"/> </Console>
3. 确认IDE控制台编码
IntelliJ中除项目编码外,需单独设置控制台编码:
打开File > Settings > Editor > General > Console,将Console Encoding设置为UTF-8。
4. 完善Maven编译编码配置
在pom.xml中补充完整编码属性,确保编译、报告全流程用UTF-8:
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <maven.compiler.encoding>UTF-8</maven.compiler.encoding> </properties>
5. 外部资源读取指定编码
如果字符串来自配置文件或外部文件,读取时显式指定UTF-8:
try (InputStreamReader reader = new InputStreamReader(new FileInputStream("config.properties"), StandardCharsets.UTF_8)) { // 执行读取逻辑 }
内容的提问来源于stack exchange,提问作者Michael Adolfo Huerta Ramirez
相关产品推荐
相关产品推荐

