视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
java连接mysql添加中文乱码_MySQL
2020-11-09 20:03:27 责编:小采
文档


bitsCN.com

java添加中文数据到mysql中,

包含中文就乱码 最初是想应该是由于字符编码不一致,所以查看数据库的属性跟表的属性

查看表的字符集也是utf8,不是的改成自己想要设置的,我这里以utf8为例

所以查看mysql的编码

#show variables like 'character%'

发现有几个编码格式不是utf8的, 修改

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.5/share/charsets/

将里面的编码格式改成

SET character_set_client='utf8';
SET character_set_connection='utf8';
SET character_set_results='utf8'; 哪些不是就改哪,

也可以直接修改C:/Program Files/MySQL/MySQL Server 5.5/my.ini文

将里面的default-character-set改成utf8,注意是utf8,而不是utf-8,否则重启服务好像会报错1667错误,重启服务,再次查询编码,

#show variables like 'character%'

显示的

character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server utf8
character_set_system utf8
character_sets_dir C:/Program Files/MySQL/MySQL Server 5.5/share/charsets/
全是utf8了,当我再次往mysql加中文,这次不是乱码,程序中报错了,很纠结的事,

Incorrect string value: '/xE8/xBF/x87/xE5/x88/x86...' for column 'username' at row 1

对此不熟悉碰了壁,但还是找到了答案,mysql中还能对表字段进行编码设置,

show full columns from tablename,使用此命令可以查看表字段的字符编码

如果你的Collation列中不是utf8,那么请修改

alter table 表 change 字段 字段 varchar(100) character set utf8 collate utf8_general_ci not null default '';
下面是我对这张表的设置,

alter table user change username username varchar(100) character set utf8 collate utf8_general_ci not null default '';
alter table user change password password varchar(100) character set utf8 collate utf8_general_ci not null default '';
alter table user change nickname nickname varchar(100) character set utf8 collate utf8_general_ci not null default '';

这是我连接mysql的方式

conn = DriverManager
.getConnection(
"jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8",
"username", "password");

添加中文成功了

bitsCN.com

下载本文
显示全文
专题