温馨提示×

ubuntu jsp怎么解决乱码

小樊
44
2026-10-06 21:54:51
栏目: 编程语言

在 Ubuntu + JSP(通常是 Tomcat) 环境下出现乱码,一般是 编码不一致 导致的。下面按「最常见 → 最稳妥」的方式帮你排查和解决。


一、确保页面本身编码统一(最重要)

1️⃣ JSP 页面顶部加编码声明

每个 JSP 文件开头都要有:

<%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>

如果已经写了但还是乱码,继续看下面。


二、解决 Tomcat 接收请求参数乱码(POST)

2️⃣ 在获取参数前设置编码

request.setCharacterEncoding("UTF-8");
String name = request.getParameter("name");

⚠️ 必须在第一次调用 getParameter 之前


三、解决 GET 请求乱码(URL 参数)

Ubuntu 下 Tomcat 默认 ISO-8859-1。

3️⃣ 修改 Tomcat 配置

编辑:

sudo vi /opt/tomcat/conf/server.xml

找到 Connector,加上:

<Connector port="8080" protocol="HTTP/1.1"
           URIEncoding="UTF-8"
           useBodyEncodingForURI="true" />

重启 Tomcat:

sudo systemctl restart tomcat

四、响应乱码(页面显示乱码)

4️⃣ 设置响应编码

response.setContentType("text/html;charset=UTF-8");
response.setCharacterEncoding("UTF-8");

五、Ubuntu 系统 & 文件编码

5️⃣ 检查系统语言环境

locale

推荐:

LANG=en_US.UTF-8

如果不是 UTF-8:

sudo apt install locales
sudo dpkg-reconfigure locales

六、数据库乱码(常见)

6️⃣ MySQL 示例

连接 URL:

jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=UTF-8

MySQL 配置:

[mysqld]
character-set-server=utf8mb4

七、编辑器问题(容易被忽略)

确保你的 JSP 文件本身是 UTF-8 无 BOM:

  • Vim::set fileencoding=utf-8
  • IDEA / Eclipse:文件编码设为 UTF-8

✅ 最稳妥一套标准配置(推荐)

  • JSP:pageEncoding="UTF-8"
  • Tomcat:URIEncoding="UTF-8"
  • request.setCharacterEncoding("UTF-8")
  • 系统:UTF-8
  • 数据库:utf8mb4

如果你愿意,可以告诉我:

  • 是 页面显示乱码 还是 表单提交乱码
  • 用的 Tomcat 版本
  • 是否使用 MySQL / Oracle

我可以给你更精确的改法。

0 踩