Ich habe Schwierigkeiten mit UTF-8 Zeichen. Dies ist ein einfaches JSF-Projekt. Ich verwende JSF 2.2 und Glassfish 4.0UTF - 8 mit JPA und Glassfish 4.0
ich eine Methode, wo ich gehe:
em.persist(user);
Als ich
user.getName()
in diesem Punkt zu debuggen, kann ich das utf-8-Zeichen sieht in meinem IDE. Außerdem behalte ich die Zeichenfolge in einer Session - Bean und ich kann sie auch im Browser gut sehen.
Nur wenn sie in DB gespeichert sind, werden sie beibehalten als: ?????
Ich kann auch die DB selbst bearbeiten und utf-8 Zeichen speichern. Was ich meine, ist meine SQL-Konfiguration ist gut für UTF-8.
Das Problem ist irgendwo in JPA.
Dies ist, was ich versucht habe: (alle zusammen:)
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>
Dies ist Glassfish-web.xml:
<glassfish-web-app>
<parameter-encoding default-charset="UTF-8"/>
</glassfish-web-app>
Und ich bin mit EntityManager verwaltet von Container (Transaktionsart = JTA)
So in JDBC Verbindungspools in Glassfi sh ich habe:
jdbc:mysql://localhost:3306/fus?useUnicode=true&connectionCollation=utf8_general_ci&characterSetResults=utf8
für: Eigenschaft: URL ...
jedoch keine dieser Hilfe.
Noch Zeichen nicht korrekt beibehalten.
Arbeitete wie ein Charme, sollte die akzeptierte Antwort für die Effizienz sein. –