Mysql插入乱码问题,mysql插入乱码
原因:
数据库table和插入语句的字符编码不匹配或者数据库table的编码不支持中文
解决方案:
修改table中的字符编码为:utf-8(或gbk,gb2312)
在代码中链接数据库时,连接字符串后面加上?characterEncoding=utf8,例如jdbc:mysql://localhost:3306/db_zhu?characterEncoding=utf8
在出现插入或修改出现乱码时,首先在mysql终端执行下插入语句,检查是否插入正确。然后再代码中打印下插入语句,看是否有乱码或问号?。最看看连接字符串是否设置了characterEncoding
附:
wamp执行mysql终端时需要mysql -u root 才能有有root权限。
拓展:
http://www.cnblogs.com/hongfei/archive/2011/12/29/set-names-utf8.html
jdbc:mysql://localhost:3306/bysj?useUnicode=true&characterEncoding=utf-8
把你的uri改成这个试一下
如果用gb2312,就把后面的utf-8改掉
如果你确定是插入数据库时乱码
而不是之前的数据就是乱码
我这有收藏解决MySQL乱码的解决方法
很多时候直接按照第三点更改就可以解决问题
如果解决不了,请补充.
(1)修改 my.ini(MySQL Server Instance Configuration 文件)
# CLIENT SECTION
[client]
port=3306
[mysql]
default-character-set=gbk
# SERVER SECTION
[mysqld]
default-character-set=gbk
(2)修改data目录中相应数据库目录下的db.opt配置文件
default-character-set=gbk
default-collation=gbk_chinese_ci
(3)数据库连接串中指定字符集
URL=jdbc:mysql://yourIP/college?user=root&password=yourPassword&useUnicode=true&characterEncoding=gbk
(4)在创建数据库时指定字符集
create database yourDB CHARACTER SET gbk;