使用EclipseLink的JPA:解码charset问题

时间:2016-06-02 05:39:18

标签: java mysql jpa eclipselink

我使用JPA和EclipseLink连接到我的mySQL数据库。我正在编写utf-8文本,我可以通过查询MySQL Workbench中的数据来验证它是否使用正确的编码编写。但是,当我从我的java控制台应用程序检索数据时,编码是不正确的。

我已尝试将characterEncoding添加到我的连接网址,但没有运气!

<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/testdb?useUnicode=yes&amp;characterEncoding=UTF-8&amp;characterSetResults=UTF-8&amp;"/>

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我的数据库的数据类型是JSON,因此我将其更改为 mediumtext CHARSET utf8 并且它工作正常,即我使用正确的编码返回数据。从MySQL的documentation json数据类型保存在utf8mb4中,所以我仍然不知道为什么它不能用于JSON数据类型。另外,我认为这不是mysql的问题,因为我可以在Workbench中读取数据并且它具有正确的编码。我唯一的猜测是,由于JSON数据类型相当新,因此存在mysql / JPA集成的错误。