我已将MySQL的字符集设置为utf8mb4,并且它适用于varchar类型,保存和阅读中文字符工作正常。
但是当谈到JSON类型时,保存工作正常,而使用spring-data-jpa将JSON作为字符串读取时,它会变得混乱。
我尝试过以下设置,但不起作用。
spring.datasource.url = jdbc:mysql://localhost:3306/TAIMIROBOT?&useUnicode=yes&characterEncoding=UTF-8
spring.datasource.init-sql="SET NAMES utf8mb4 COLLATE utf8mb4_bin;"
答案 0 :(得分:0)
此问题已得到修复。 bugs.mysql.com/bug.php?id=80631
ResultSet.getString()有时返回列的乱码数据 JSON数据类型。这是因为JSON数据是由MySQL使用的二进制编码 utf8mb4字符集,但使用ISO-8859-1由Connector / J解码 字符集。
此修复程序已包含在Connector / J 6.0.5中。 5.1.40的条目 changelog已包含在6.0.5更改日志中。
如果您遇到同样的问题,只需将maven pom文件中的连接器版本更新为6.0.5(如果您使用的是maven)。