温馨提示  2024年 6月我们已经停止开发者板块文章内容更新,谢谢来访。存档数据
知识 2023-08-28 23 次阅读

如何解决mysql jdbc中文乱码问题

   

mysql jdbc中文乱码的解决方案就是在jdbc url中明确设置characterencoding属性为utf8,代码如“jdbc:mysql://host:port/dbname?characterencoding=utf8”。

本文操作环境windows7系统、mysql5.7版、dell g3电脑。

如何解决mysql jdbc中文乱码问题?

jdbc mysql写入中文乱码解决

一. 问题

数据库编码utf8

mysql> create database dbnamedefault character set utf8 collate utf8,general,ci;

表编码utf8

drop table if exists `test`;create table `test` (`id` bigint(20) not null auto,increment comment 'id',`name` varchar(50) default '',`create,time` timestamp not null default current,timestamp comment '创建时间',primary key (`id`))engine=innodb default charset=utf8;

jdbc url:

url: jdbc:mysql://host:port/dbname

数据库和数据库表都已经使用了utf8编码,但是插入中文数据时仍然乱码。

二. 原因

在jdbc中连接mysql时,jdbc url参数中有一个属性characterencoding控制字符串编码,该值默认为autodetect。需要明确设置为utf8,可解决问题。

mysql文档解释如下,详见https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-configuration-properties.html中setting configuration properties部分详细说明。

三. 解决方案

在jdbc url中明确设置characterencoding属性为utf8。

url: jdbc:mysql://host:port/dbname?characterencoding=utf8

推荐学习《mysql视频教程》