在实现JSP页面的时候,显示数据库上面的列表出现乱码,解决成功,做个笔记,以后遇到作为参考
第一步 避免创建数据库及表出现中文乱码和查看编码方法
1.建数据库的时候就设成utf8
create database db_name character set 'utf8' collate 'utf8_general_ci';
2.建表的时候
create table login(
....
)engine=InnoDB default charset=utf8;
第二步 我们查看默认的编码格式
show variables like "%char%";
如果有出现latin1或gbk,统一按下面全部修改成utf8
修改字符集为utf8
修改字符集为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;
set character_set_system=utf8;
set collation_connection=utf8_swedish_ci;
SET collation_database = utf8_general_ci;
SET collation_server = utf8_general_ci
;
第三步 查看数据库编码格式
show create database db_name;
查看数据表
show create table tb_name;
第四步修改my.ini文件
直接ctrl+F 把latin1换成gbk
然后重启mysql
net stop mysql(注意不要有分号)
net start mysql
直接ctrl+F 把latin1换成gbk
然后重启mysql
net stop mysql(注意不要有分号)
net start mysql
第五步重新登入mysql,应该就可以插入中文的数据了
插入完成后
查看数据是否正常。
插入完成后
set names gbk;
select * from tb_name;
查看数据是否正常。
好吧,到这里就结束了,如果还有问题的话应该就是网页设置的问题了。
比如
1.在jsp文件里面
或者在最前面可以加上
比如
1.在jsp文件里面
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
或者在最前面可以加上
<%@page pageEncoding="utf-8"%>
2.在applicationContext.xml里面的连接写的
<property name="url"
value="jdbc:mysql:///db_name?useUnicode=true&characterEncoding=utf8">
</property>
最后补充一个 如果在不想重新创建数据库和表的情况下我们要怎么做呢?
将数据库修改成utf8格式
将表修改成utf8格式
将数据库修改成utf8格式
ALTER DATABASE `db_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
将表修改成utf8格式
ALTER TABLE `table_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;