解决MySQL中文乱码

1.在my.ini里面改
[mysql]

default-character-set=gbk

[mysqld]
default-character-set=utf8
重启服务,然后在mysql client执行下列命令查看,如果有这样的结果就OK
mysql> show variables like 'chara%';
+--------------------------+----------------------------------------------------
-----+
| Variable_name | Value
|
+--------------------------+----------------------------------------------------
-----+
| character_set_client | gbk
|
| character_set_connection | gbk
|
| character_set_database | utf8
|
| character_set_filesystem | binary
|
| character_set_results | gbk
|
| character_set_server | utf8
|
| character_set_system | utf8
|
| character_sets_dir | c:\Program Files\MySQL\MySQL Server 5.0\share\chars
ets\ |
+--------------------------+----------------------------------------------------
-----+
8 rows in set (0.00 sec)

2.连接文件要为url="jdbc:mysql://localhost:3306/MySql?useUnicode=true&characterEncoding=utf-8"

页面的jsp编码也要为utf-8

这样设置之后,不管是在mysql client进行插入数据,还是从jsp,java后台插入数据都不会出现乱码了,查看也不会出现乱码了。

还有如果你之前,建有表之类的,请先删除表在重新建表,务必要保持表的编码和 character_set_database | utf8的一样,或改变原表的编码,用命令
mysql> show create table person;
+--------+---------------------------------------------------------------------
-------------------------------------------------------------------------------
-----------------------------------------------------------+
| Table | Create Table

|
+--------+---------------------------------------------------------------------
-------------------------------------------------------------------------------
-----------------------------------------------------------+
| person | CREATE TABLE `person` (
`id` int(10) NOT NULL,
`name` varchar(20) NOT NULL,
`sex` varchar(8) default NULL,
`email` varchar(30) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+--------+---------------------------------------------------------------------
-------------------------------------------------------------------------------
-----------------------------------------------------------+
1 row in set (0.00 sec)
可以查看表的编码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值