So habe ich Hibernate mit Wildfly und MySql eingerichtet.Java EE, Ruhezustand, MySql UTF-8 Abfrage funktioniert nicht
Abfrage funktioniert, aber Problem UTF-8-Charakternamen abzufragen.
Auf MySql:
SELECT * FROM users WHERE firstname = "ნიკა";
Hat in leere Menge nicht zur Folge haben.
Während in Java:
Session session = HibernateUtils.getSession();
String name = request.getParameter("name");
CriteriaBuilder builder = session.getCriteriaBuilder();
CriteriaQuery<UsersEntity> query = builder.createQuery(UsersEntity.class);
Root<UsersEntity> usersRoot = query.from(UsersEntity.class);
query.select(usersRoot)
.where(builder.equal(usersRoot.get("firstname"), name));
List<UsersEntity> list = session.createQuery(query).list();
session.close();
writeUsers(list, response.getWriter());
Ergebnisse in einer leeren Menge, wenn localhost:8080/main?name=ნიკა
Abfrage Wie kann ich dieses Problem beheben?
UPDATE:
ich auch Problem haben, dass, wenn alle Daten abfragt und sie nicht Englisch Anzeigen von Zeichen mit Fragezeichen ersetzt werden.
UPDATE 2:
Dieser Code ergibt Fragezeichen auf Browser zeigt nach oben:
response.getWriter().write("ნიკა ჩხარტიშვილი");
Während dies ein richtig funktioniert:
response.setCharacterEncoding("UTF-8");
response.getWriter().write("ნიკა ჩხარტიშვილი");
Wenn mit dieser Abfrage Abfrage-Datenbank SELECT * FROM users WHERE username='ნიკა'
Datenbank erhält Fragezeichen statt ნიკა
(Das ist was sh eilt in wireshark).
Ich denke, es ist Wildfly Problem, weil es UTF-8 korrekt empfangen, aber Fragezeichen sendet, es sei denn, es ist angegeben, UTF-8 zu senden.
und wenn für den Test Sie den Namen im Code fest codieren könnten, funktioniert es auch. Wenn es so funktioniert, ist es die Übersetzung, die vom Browser ausgeführt wird. – davejal
@davejal Hardcoding funktioniert nicht so gut. – nikartix
Ihr SQL-Beispiel verwendet 'firstname =" ნიკა "'. In Ihrem URL-Beispiel wird "localhost: 8080/main? Name = ნიკა" verwendet. Was passiert, wenn Sie die Sitzung nach dem Aufruf von "writeUsers" schließen? Was macht der Aufruf 'writeUsers'? –