插件窝 干货文章 使用TomCat,service输出台出现乱码的解决

使用TomCat,service输出台出现乱码的解决

UTF-8 编码 设置 配置 978    来源:    2025-04-01

Tomcat 控制台输出乱码问题解决方案

当 Tomcat 服务控制台输出出现乱码时,通常是由于字符编码设置不正确导致的。以下是几种常见的解决方案:

1. 修改 Tomcat 日志编码配置

编辑 conf/logging.properties 文件,确保以下配置使用 UTF-8 编码:

java.util.logging.ConsoleHandler.encoding = UTF-8

2. 修改启动脚本编码设置

Windows (catalina.bat 或 startup.bat)

在文件开头添加:

set "JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=UTF-8"

Linux/Unix (catalina.sh 或 startup.sh)

在文件开头添加:

JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8"
export JAVA_OPTS

3. 修改 server.xml 连接器配置

conf/server.xml 中找到 Connector 配置,添加 URIEncoding 属性:

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" 
           URIEncoding="UTF-8"/>

4. 检查系统环境变量

确保系统环境变量中设置了正确的编码:

# Linux/Unix
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8

# Windows
set LANG=en_US.UTF-8

5. 检查 IDE 或终端编码设置

如果是在 IDE 中运行 Tomcat: - Eclipse: Window > Preferences > General > Workspace > Text file encoding > UTF-8 - IntelliJ IDEA: File > Settings > Editor > File Encodings > 全部设置为 UTF-8

如果是使用终端: - 确保终端编码设置为 UTF-8 - Windows 命令提示符可以使用 chcp 65001 切换到 UTF-8 代码页

6. 检查应用程序编码设置

确保你的 web 应用中也设置了正确的编码: - 在 JSP 页面顶部添加:<%@ page contentType="text/html;charset=UTF-8" %> - 在 Servlet 中设置响应编码:response.setCharacterEncoding("UTF-8");

7. 检查日志框架配置

如果使用 Log4j 或 Logback 等日志框架,确保其配置文件中指定了 UTF-8 编码。

通过以上方法,通常可以解决 Tomcat 控制台输出乱码的问题。如果问题仍然存在,可能需要检查操作系统本身的区域和语言设置是否正确配置了 UTF-8 支持。