解决数据库查询中文返回乱码问题

解决数据库查询返回乱码问题

在windows系统下使用

声明小编使用的是本地调试
1.server本身设定问题,例如还停留在latin1
2.table的语系设定问题(包含character与collation)
3.客户端程式(例如php)的连线语系设定问题
强烈建议使用utf8!!!
utf8可以兼容世界上所有字符!!!

**

1.首先查看数据库字符集相关的配置

dos命令 : show variables like ‘character_set%’;

在这里插入图片描述
一定要根据自己的实际业务操作,上图是小编的
如果不是的请往下看。
找到配置文件my.ini
配置如下:

[client]
port=3306
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
port=3306
character-set-server=utf8
collation-server=utf8_general_ci
init_connect='SET collation_connection = utf8_unicode_ci' 
init_connect='SET NAMES utf8' 
collation-server=utf8_unicode_ci 
skip-character-set-client-handshake

重新启动服务
在这里插入图片描述
再次使用命令继续查看是不是改变了。

2.查看数据库字符集

在这里插入图片描述

3.查看表字符集

在这里插入图片描述

4.查看自己表中列的字符集

在这里插入图片描述
在这里插入图片描述

5.数据库连接

spring.datasource.url=jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8

加上:useUnicode=true&characterEncoding=utf8

以上还是解决不了!!!

6.查看表中的字段类型

存储的中文字段类型是varbinary,修改为VARCHAR 试试
为什么修改可以正常显示呢
BINARY和VARBINARY与 CHAR和VARCHAR类型有点类似,不同的是BINARY和VARBINARY存储的是二进制的字符串,而非字符型字符串。也就是说,BINARY和VARBINARY没有字符集的概念,对其排序和比较都是按照二进制值进行对比
转自:https://blog.csdn.net/sxingming/article/details/52628531

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值