你提到的「debian jsp 乱码」通常是指 在 Debian 系统上运行 JSP(一般是 Tomcat)时,页面或数据出现中文乱码。这是非常常见的问题,根本原因基本都是 字符编码不一致。
下面按常见原因逐一说明,并给出解决办法。
JSP 乱码通常不是“Debian 的问题”,而是 多环节编码不一致:
涉及环节:
在每个 JSP 顶部加:
<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %>
✅ pageEncoding:JSP 文件本身的编码
✅ contentType:发给浏览器的编码
<meta charset="UTF-8">
编辑:
/etc/tomcat9/server.xml
找到:
<Connector port="8080" protocol="HTTP/1.1" ... />
加上:
URIEncoding="UTF-8"
例如:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8" />
然后重启 Tomcat:
systemctl restart tomcat9
查看当前编码:
locale
如果不是 UTF-8,可以设置:
sudo dpkg-reconfigure locales
选择:
zh_CN.UTF-8
并确保:
LANG=zh_CN.UTF-8
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
⚠️ 必须在 获取参数之前 调用。
jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=UTF-8
数据库、表、字段也要是 utf8mb4。
检查 JSP 文件编码:
file your.jsp
如果不是 UTF-8,用编辑器另存为 UTF-8(无 BOM)。
UTF-8URIEncodinglocale如果你愿意,可以把:
发出来,我可以直接帮你定位是哪一步的问题。