Ubuntu上JSP乱码的定位与解决
一、常见成因与排查顺序
二、JSP与Web层设置
<%@ 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");
response.setCharacterEncoding("UTF-8");
<form accept-charset="UTF-8">
三、Tomcat与操作系统层设置
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000" redirectPort="8443"
URIEncoding="UTF-8" />
<Connector ... URIEncoding="GBK" />
<Connector ... useBodyEncodingForURI="true" />
四、数据库与JDBC设置(以MySQL为例)
CREATE DATABASE your_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
jdbc:mysql://localhost:3306/your_db?useUnicode=true&characterEncoding=UTF-8
[client]
default-character-set=utf8
[mysqld_safe]
default-character-set=utf8
[mysqld]
default-character-set=utf8
[mysql]
default-character-set=utf8
SHOW VARIABLES LIKE '%char%';
确认关键变量为 utf8/utf8mb4。五、快速自检与常见坑