解决插入到mysql中,数据库里面显示乱码(????)的问题
在数据库管理工具或者终端(cmd)中输入命令查看编码
show variables like "%char%";
然后设置各个编码格式统一为utf-8,如:
SET character_set_server='utf8';
设置6个即可:
说明如下:
client | 为客户端使用的字符集。 |
connection | 为连接数据库的字符集设置类型,如果程序没有指明连接数据库使用的字符集类型则按照服务器端默认的字符集设置。 |
database | 为数据库服务器中某个库使用的字符集设定,如果建库时没有指明,将使用服务器安装时指定的字符集设置。 |
results | 为数据库给客户端返回时使用的字符集设定,如果没有指明,使用服务器默认的字符集。 |
server | 为服务器安装时指定的默认字符集设定。 |
system | 为数据库系统使用的字符集设定。 |
1,首先数据库的设置及表的设置
数据库设置:
表设置:建表语句中带有 ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 ;如
CREATE TABLE `user_suggest` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `user_id` bigint(20) NOT NULL COMMENT '用户ID', `suggest` varchar(255) DEFAULT NULL COMMENT '用户建议', `create_time` datetime DEFAULT NULL COMMENT '创建时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='用户反馈';
2,保证提交到数据库的数据没有乱码
3,连接数据库的url 需要加上参数:?useUnicode=true&characterEncoding=UTF-8 如:
# JDBC配置 spring.datasource.druid.url=jdbc:mysql://192.168.2.111:3306/jupiter?useUnicode=true&characterEncoding=UTF-8 spring.datasource.druid.username=root spring.datasource.druid.password=1234 spring.datasource.druid.driver-class-name=com.mysql.jdbc.Driver