Я создал веб-сервис, используя NetBeans 6.9.1, работающий в Mac OS на сервере приложений Glassfish 3.0.1.Этот метод принимает строковый аргумент китайских иероглифов.Он вставляет строку в таблицу базы данных MySQL.При просмотре кода сервера в режиме отладки символы поступают правильно.Наблюдение за отладчиком показывает приведенный ниже параметр запроса с китайскими символами.
Query query = entityManager.createNativeQuery(QueryInsertWord);
query.setParameter(1, word);
query.executeUpdate();
ОДНАКО после вставки столбец таблицы базы данных имеет ???вместо китайских иероглифов.Я предполагаю, что база данных MySQL совместима с UTF-8, потому что я могу вручную вручную вырезать и вставлять китайские символы в этот же столбец с помощью инструмента управления базами данных Navicat.
PU выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="MyPU" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>javaapplication1.Registration</class>
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/myDatabase"/>
<property name="javax.persistence.jdbc.password" value=""/>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="javax.persistence.jdbc.user" value="root"/>
</properties>
</persistence-unit>
</persistence>
Я настроил ВСЕ пулы соединений Glassfish jdbc с дополнительными свойствами useUnicode=true
и characterEncoding=utf8
.
Пожалуйста, помогите мне.