采用jsp+mysql的编程方式,会遇到中文乱码问题,修改mysql和jsp相关配置文件,统一为一种编码格式(比如utf8)即可解决。
use mysql;
# 设置字符集统一为utf8
set character_set_client=utf8;
set character_set_connection=utf8;
set character_set_database=utf8;
set character_set_results=utf8;
set character_set_server=utf8;
# 检查字符集设置结果
show variables like 'character%'
show variables like 'collation_%'
# 创建表,测试设置效果
create table test(id int,c1 varchar(20));
alter table test modify c1 varchar(20)character set utf8;
insert into test values(1,'张三');
insert into test values(2,'李四');
commit;
select * from test;
# 在mysql的配置文件my_default.ini中设置字符集为utf8
[mysqld]
port = 3306
default-character-set = utf8
character-set-server = utf8
[client]
default-character-set = utf8
[server]
default-character-set = utf8
[mysql]
default-character-set = utf8
# 修改相关配置文件中的字符集变量,包括:server.xml,web.xml,jsp文件
# server.xml
<ConnectorconnectionTimeout="20000" port="8080"protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>
# JSP文件
<%@ page pageEncoding="UTF-8" %>
<%@ page contentType="text/html;charset=UTF-8"language="java" %>
<%@ page import="java.sql.*"%>
<htmlxmlns="http://www.w3.org/1999/xhtml">
<metahttp-equiv="Content-Type" content="text/html; charset=UTF-8" />`