代码之家  ›  专栏  ›  技术社区  ›  TiyebM

为什么Hibernate SaveorUpdate无法获取阿拉伯语数据?

  •  0
  • TiyebM  · 技术社区  · 7 年前

    当我保存阿拉伯语字符串时,数据库中的结果 MySQL 仅仅是 ? .

    在表结构中,列的编码是 UTF-8 ,还有其他阿拉伯数据,这意味着问题来自 Hibernate 4.3 ,当我查看文档时 Developer Guide 他们建议,只有一门与编码有关的学科,即UTF、阿拉伯语……。 @Nationalized 注释,我做了,但它没有用处。

    通过调试,阿拉伯语字符串仍在对象中,直到:

    session.saveOrUpdate(myObj);
    

    之后我不知道发生了什么。

    我正在发展 Netbeans ,谢谢你的帮助。

    2 回复  |  直到 7 年前
        1
  •  2
  •   Alien    7 年前

    通过指定 useUnicode 和 characterEncoding .

    jdbc:mysql://localhost:3306/dbname?useUnicode=yes&characterEncoding=UTF-8
    

    如果您使用的是Spring引导,请将其放在application.properties文件的行下面。

    spring.datasource.connectionProperties=useUnicode=true;characterEncoding=utf-8;
    

    见 use-useunicode-yes-characterencoding-utf-8

        2
  •  0
  •   MostafaMashayekhi    7 年前

    必须为架构和表指定字符集,只需根据以下链接更改数据库的默认字符集:

    Change MySQL default character set to UTF-8 in my.cnf?

    如果您阅读此链接并更改设置,则必须:

    第一: 重新启动mysql或类似的任何其他(systemctl start mysql)

    第二: 删除架构、数据库和表,然后重新创建。

    这是波斯语的作品。