MySQL数据库和表都为utf8mb4_0900_ai_ci IDEA编码为UTF-8 为什么IDEA使用JDBC查询出来的数据会乱码?
时间: 2024-05-27 12:13:34 浏览: 62
可能是因为IDEA连接MySQL时没有指定使用utf8mb4字符集,导致默认使用的是UTF-8字符集,与MySQL的字符集不匹配,因此查询出来的数据会乱码。解决方法是在IDEA连接MySQL时指定使用utf8mb4字符集,可以在连接字符串中添加字符集参数,例如:jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8mb4。
相关问题
[ERR] 1273 - Unknown collation: utf8mb4_0900_ai_ci
[ERR] 1273 - Unknown collation: 'utf8mb4_0900_ai_ci' 是一个MySQL报错信息,表示在MySQL数据库中使用了一个未知的字符集排序规则(collation)。这个错误通常发生在将MySQL数据库的表复制到MariaDB数据库时,或者在导入SQL文件时。具体原因是由于SQL对应的MySQL版本高于当前要导入的MySQL库的版本,导致引发了1273错误。解决方案是打开SQL文件,将文件中的所有utf8mb4_0900_ai_ci替换为utf8_general_ci,并将utf8mb4替换为utf8。处理完SQL文件后,重新在MySQL库中导入该SQL文件即可解决该问题。
Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '='
这个错误通常发生在MySQL数据库中,是由于在比较操作(例如使用等号=)时,涉及到不同的字符集(collation)导致的。utf8mb4_0900_ai_ci和utf8mb4_general_ci是两种不同的字符集校对规则。
要解决这个问题,你可以尝试以下几种方法:
1. 修改表的字符集和校对规则:可以使用ALTER TABLE语句修改表的字符集和校对规则,使其一致。例如:
ALTER TABLE `your_table` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
2. 修改连接的字符集和校对规则:可以在连接数据库之前,设置连接的字符集和校对规则。例如:
SET NAMES utf8mb4 COLLATE utf8mb4_0900_ai_ci;
3. 修改配置文件:如果你有访问MySQL配置文件的权限,可以通过修改配置文件中的默认字符集和校对规则来解决。例如,在my.cnf或my.ini文件中添加以下配置:
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_0900_ai_ci
请注意,在执行任何更改之前,请备份你的数据库以防止意外数据损失。如果问题仍然存在,建议参考MySQL文档或向相关的MySQL支持渠道寻求进一步帮助。
阅读全文