You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring MVC控制台输出不支持UTF-8编码问题求助

解决IntelliJ中Spring MVC控制台非英文字符乱码问题

我之前在开发Spring MVC项目时也遇到过一模一样的控制台非英文字符乱码问题,大概率是编码配置不匹配导致的,一步步来排查解决:

1. 先检查IntelliJ自身的编码设置

打开IntelliJ的设置(快捷键Ctrl+Alt+S,或者通过File > Settings进入):

  • 找到Editor > File Encodings:
    • 把Global Encoding、Project Encoding、Default encoding for properties files全部设置为UTF-8
    • 务必勾选Transparent native-to-ascii conversion(处理properties文件的中文转码)
  • 如果用Maven构建,再去Build, Execution, Deployment > Build Tools > Maven > Runner,在VM options里添加:
    -Dfile.encoding=UTF-8
    
    要是用Gradle,就去Build, Execution, Deployment > Build Tools > Gradle,在Gradle VM options里加同样的参数

2. 配置Tomcat的编码(如果用Tomcat作为运行容器)

  • 如果你用的是本地安装的Tomcat,找到Tomcat目录下的conf/logging.properties,修改控制台处理器的编码:
    java.util.logging.ConsoleHandler.encoding = UTF-8
    
  • 如果是IntelliJ中直接配置的Tomcat,在Run/Debug配置窗口里,找到Tomcat Server > VM options,添加:
    -Dfile.encoding=UTF-8
    

3. 确保Spring MVC的编码过滤器配置正确

虽然你是控制台打印乱码,但项目的编码过滤器也可能间接影响,建议在web.xml里添加字符编码过滤器:

<filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

4. 全局设置JVM编码(终极一招)

如果上面的都试过还是不行,直接修改IntelliJ的JVM启动参数:

  • 点击Help > Edit Custom VM Options
  • 在打开的文件里添加一行:
    -Dfile.encoding=UTF-8
    
  • 保存后重启IntelliJ,这个设置会全局生效

按上面的步骤走,基本能解决控制台非英文字符乱码的问题,我当时就是靠调整这些配置搞定的!

内容的提问来源于stack exchange,提问作者Shavqat Ibrohimov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:27:02