MySQL的中文乱码问题解决方案


在实现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
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

第五步重新登入mysql,应该就可以插入中文的数据了
插入完成后
set names gbk;
select * from tb_name;


查看数据是否正常。

好吧,到这里就结束了,如果还有问题的话应该就是网页设置的问题了。
比如
1.在jsp文件里面
 


或者在最前面可以加上
<%@page pageEncoding="utf-8"%>


2.在applicationContext.xml里面的连接写的



最后补充一个 如果在不想重新创建数据库和表的情况下我们要怎么做呢?
将数据库修改成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;  

你可能感兴趣的:(MySQL的中文乱码问题解决方案)