EntityManager数据传输到mySQL时出现UTF-8编码问题



我有两个项目都使用同一个mySQL数据库。一个是Master/Detail桌面应用程序,另一个是使用PrimeFaces-4.0的JSF Crud。-尽管我的JDBC连接是UTF-8作为:

jdbc:mysql://localhost:3306/db_name?useUnicode=yes&characterEncoding=UTF-8
  • 数据库字段也是utf-8_general_ci
  • 我将Glassfish JDBC属性定义为:使用Unicode,truecharacterSetResults,UTF-8characterEncoding,UTF-8

但我还是得到了"?"当我输入非英语字符串时,字符会进入我的数据库!

当我们开始使用Hibernate时,我也遇到了同样的问题。将额外的配置分配到连接URL并没有解决问题,但是我们添加了以下属性

<property name="hibernate.connection.characterEncoding">utf8</property>
<property name="hibernate.connection.useUnicode">true</property>
<property name="hibernate.connection.charSet">UTF-8</property> 

这就是解决问题的方法。尝试从URL字符串中删除参数并保持原样,这样它就和一样

jdbc:mysql://localhost:3306/db_name

我希望它能解决你的问题。

编辑:我只是注意到你根本没有使用Hibernate,所以这对你没有帮助;/

最新更新