温馨提示×

ubuntu jsp怎么设置编码

小樊
41
2026-10-12 18:39:35
栏目: 编程语言

在 Ubuntu 上开发 JSP(Java Server Pages) 时,设置编码主要涉及 页面编码、服务器编码、数据库编码 三个方面。下面按常见场景给你说明。


一、JSP 页面自身编码设置(最重要)

1️⃣ 每个 JSP 页面顶部设置

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

说明:

  • pageEncoding:JSP 文件本身的编码(写文件时的编码)
  • contentType:浏览器解析时使用的编码

✅ 必须两个都写 UTF-8


2️⃣ HTML 中也要声明

<meta charset="UTF-8">

二、Tomcat 服务器编码设置(Ubuntu 常见)

1️⃣ 修改 Tomcat 的 server.xml

路径一般是:

/etc/tomcat9/server.xml
# 或
/opt/tomcat/conf/server.xml

找到 Connector:

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

✅ 关键参数:URIEncoding=“UTF-8”


2️⃣ 设置 JVM 默认编码(推荐)

编辑:

/etc/default/tomcat9

添加:

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

重启 Tomcat:

sudo systemctl restart tomcat9

三、Servlet 中设置编码(防止中文乱码)

1️⃣ 请求编码

request.setCharacterEncoding("UTF-8");

2️⃣ 响应编码

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

✅ 建议使用 过滤器(Filter) 统一设置


四、数据库编码(MySQL 示例)

MySQL 配置

sudo nano /etc/mysql/my.cnf

添加:

[client]
default-character-set=utf8mb4

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

数据库、表也要 UTF-8:

CREATE DATABASE test CHARACTER SET utf8mb4;

JDBC 连接:

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

五、Ubuntu 系统语言环境(可选但推荐)

locale

如果不是 UTF-8:

sudo apt install locales
sudo dpkg-reconfigure locales

选择 en_US.UTF-8 或 zh_CN.UTF-8


六、常见乱码原因总结

原因 解决
JSP 没写 charset 加 page 指令
Tomcat 没设 URIEncoding server.xml
数据库不是 UTF-8 改 MySQL
系统 locale 不是 UTF-8 dpkg-reconfigure

如果你用的是 具体版本(Tomcat 8/9/10、Ubuntu 20/22) 或 某种框架(Spring、Servlet),我可以给你更精确的配置示例。

0 踩