JavaEE中的Unicode并在数据库中保存问号
当我使用JavaEE6JSF和JPA插入波斯语信息时,我的信息会保存问号,例如علی===>???我的数据库是Mysql,表是UTF-8。 当直接在数据库中插入波斯数据是正确的并且保存正确时 我知道,通过更改JavaEE中的一个属性,我的问题将得到解决JavaEE中的Unicode并在数据库中保存问号,java,mysql,jpa,jdbc,Java,Mysql,Jpa,Jdbc,当我使用JavaEE6JSF和JPA插入波斯语信息时,我的信息会保存问号,例如علی===>???我的数据库是Mysql,表是UTF-8。 当直接在数据库中插入波斯数据是正确的并且保存正确时 我知道,通过更改JavaEE中的一个属性,我的问题将得到解决 但我不知道它在哪里 我认为您需要在连接URL中设置以下参数: jdbc:mysql://host:port/db?useUnicode=true&characterEncoding=UTF-8 通过在/etc/mysql-linux中修
但我不知道它在哪里 我认为您需要在连接URL中设置以下参数:
jdbc:mysql://host:port/db?useUnicode=true&characterEncoding=UTF-8
通过在/etc/mysql-linux中修改my.cnf mysql配置文件并添加此2标记,解决了我的问题
default-character-set=utf8
default-collation=utf8_persian_ci
我在sun-resource.xml中对此进行了测试和设置,但没有解决。看起来您在JDBC URL中添加了不应该包含的空格。删除空格,例如,不要在?、=和&之前和之后写空格,并写UTF-8而不是UTF-8。我更改了sun-resources.xml,但没有解决@Jeus我建议尝试隔离问题。因此,使用JDBC编写一个简单的类来验证连接URL。一旦你能让它工作起来,就开始应用服务器配置。我使用JPA,我在使用查询浏览器mysql在数据库中正确插入数据方面没有问题,但是使用我的应用插入插入?在数据库中,我怀疑MySQL JDBC驱动程序中存在错误。对于较新版本的MySQL,请使用以下命令:``[mysqld]字符集服务器=utf8排序服务器=utf8\u常规\u ci```