Ho difficoltà con i caratteri UTF-8. Questo è un semplice progetto JSF. Io uso JSF 2.2 e Glassfish 4.0UTF - 8 con JPA e Glassfish 4.0
Ho un metodo dove vado:
em.persist(user);
Quando il debug
user.getName()
a questo punto, posso vedere i caratteri UTF-8 nel mio IDE. Inoltre tengo la stringa in una sessione - bean e posso vederli anche sul browser bene.
Solo quando sono persistenti in DB, vengono mantenuti come: ?????
Posso anche modificare il DB personalmente e salvare i caratteri utf-8. Quello che voglio dire è che la mia configurazione SQL è buona per UTF-8.
Il problema è da qualche parte in JPA.
Questo è quello che ho provato: (tutti insieme:)
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>
Si tratta di pesci vetro-web.xml:
<glassfish-web-app>
<parameter-encoding default-charset="UTF-8"/>
</glassfish-web-app>
e sto usando EntityManager gestito da container (tipo di transazione = JTA)
Quindi in pool di connessione JDBC in Glassfi sh ho:
jdbc:mysql://localhost:3306/fus?useUnicode=true&connectionCollation=utf8_general_ci&characterSetResults=utf8
per: proprietà: URL ...
Tuttavia nessuno di questi aiuto.
I caratteri di fermo non sono stati mantenuti correttamente.
Ha funzionato come un fascino, dovrebbe essere la risposta accettata per l'efficienza. –