UTF-8 文字に問題があります。これは単純な JSF プロジェクトです。JSF 2.2 と Glassfish 4.0 を使用しています
私が行く方法があります:
em.persist(user);
デバッグするとき
user.getName()
この時点で、IDE に utf-8 文字が表示されます。また、文字列をセッション-Beanに保持し、ブラウザーでも問題なく表示できます。
DB に永続化される場合のみ、次のように永続化されます: ?????
DB を自分で編集して、utf-8 文字を保存することもできます。つまり、私の SQL 構成は UTF-8 に適しています。
問題はJPAのどこかにあります。
これは私が試したことです:(すべて一緒に:)
persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
<persistence-unit name="Persistence" transaction-type="JTA">
<jta-data-source>fus</jta-data-source>
<class>com.tugay.fup.core.model.User</class>
<properties>
<property name="javax.persistence.jdbc.url"
value="jdbc:mysql://localhost:3306/fus?useUnicode=yes&characterEncoding=UTF-8"/>
</properties>
</persistence-unit>
</persistence>
これは、glassfish-web.xml です。
<glassfish-web-app>
<parameter-encoding default-charset="UTF-8"/>
</glassfish-web-app>
そして、コンテナで管理されているEntityManagerを使用しています(トランザクションタイプ= JTA)
したがって、Glassfish の JDBC 接続プールには次のものがあります。
jdbc:mysql://localhost:3306/fus?useUnicode=true&connectionCollation=utf8_general_ci&characterSetResults=utf8
対象: プロパティ: URL...
ただし、これらのどれも役に立ちません。
静止文字が正しく保持されません。