当 Tomcat 服务控制台输出出现乱码时,通常是由于字符编码设置不正确导致的。以下是几种常见的解决方案:
编辑 conf/logging.properties
文件,确保以下配置使用 UTF-8 编码:
java.util.logging.ConsoleHandler.encoding = UTF-8
在文件开头添加:
set "JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=UTF-8"
在文件开头添加:
JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8"
export JAVA_OPTS
在 conf/server.xml
中找到 Connector 配置,添加 URIEncoding 属性:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"/>
确保系统环境变量中设置了正确的编码:
# Linux/Unix
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
# Windows
set LANG=en_US.UTF-8
如果是在 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 代码页
确保你的 web 应用中也设置了正确的编码:
- 在 JSP 页面顶部添加:<%@ page contentType="text/html;charset=UTF-8" %>
- 在 Servlet 中设置响应编码:response.setCharacterEncoding("UTF-8");
如果使用 Log4j 或 Logback 等日志框架,确保其配置文件中指定了 UTF-8 编码。
通过以上方法,通常可以解决 Tomcat 控制台输出乱码的问题。如果问题仍然存在,可能需要检查操作系统本身的区域和语言设置是否正确配置了 UTF-8 支持。