解决数据库查询返回乱码问题
在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