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文件里面
 <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格式
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;  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值