【发布时间】:2014-01-08 02:30:28
【问题描述】:
我想通过我的 Web 应用程序在 MySQL 数据库中插入信息。我在 TomEE 服务器上通过 OpenJPA 完成 例如:
public void addLecturer(String name, String surname) {
Lecturer lect = new Lecturer(name,surname);
em.persist(lect);
}
其中 Lecturer 是实体类。问题是应用程序以 latin1 编码插入数据。我想以 UTF-8 编码插入它。
当我在命令行终端中通过简单的 MySQL 命令插入数据时,我会以 UTF-8 编码获取信息。
我看过这个,我看到 character_set_server 设置为 latin1 但我不知道这是不是问题或如何更改它:
mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
编辑
我也有同样的问题:
JPA utf-8 characters not persisted
和
UTF - 8 with JPA and Glassfish 4.0
我将useUnicode=yes、characterEncoding=utf8 和characterSetResults=utf8 添加到我的财产javax.persistence.jdbc.url,但这没有帮助。
【问题讨论】:
标签: mysql jpa encoding persistence