你提到的“Debian + JSP 乱码”,通常是 中文乱码,本质原因是 编码不一致(系统、Tomcat、JSP、数据库、浏览器任何一方不一致都会乱码)。
下面按 常见场景 + 解决方案 给你一个完整排查清单。
locale
如果不是 UTF-8,例如是 POSIX 或 GBK,就会出问题。
sudo dpkg-reconfigure locales
勾选:
zh_CN.UTF-8
en_US.UTF-8
然后:
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
永久生效可写入:
/etc/default/locale
编辑:
/etc/tomcat9/server.xml
(版本不同可能是 tomcat8 / tomcat10)
找到:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
改为:
<Connector port="8080" protocol="HTTP/1.1"
URIEncoding="UTF-8"
useBodyEncodingForURI="true"
connectionTimeout="20000"
redirectPort="8443" />
<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %>
<meta charset="UTF-8">
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
GET 参数依赖 Tomcat URIEncoding,必须按第二步配置。
SHOW VARIABLES LIKE 'character%';
确保是:
utf8mb4
jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=UTF-8
确保:
我可以给你 精确到配置文件的修改方案。