Mit anderen Worten, der MySQL-JDBC-Treiber unterstützt nicht die Zeichenkodierung, mit der die Zeichen ursprünglich übermittelt wurden. Der MySQL-JDBC-Treiber verwendet beim Senden von Zeichendaten an die DB standardmäßig die Standardcodierung der Plattform, die beispielsweise ISO 8859-1 sein kann. Sie müssen es anweisen, dies nicht zu tun, indem Sie useUnicode
angeben und characterEncoding
Parameter in der JDBC-URL.
jdbc:mysql://localhost:3306/db_name?useUnicode=yes&characterEncoding=UTF-8
Wenn Sie Facelets als Ansichtstechnologie verwenden, verwendet JSF von selbst bereits UTF-8, wenn es darum geht, HTML-Inhalte zu rendern und übermittelte Parameterwerte zu verarbeiten. Das Problem liegt also zumindest nicht darin.
Siehe auch:
- Unicode - So erhalten Sie die Zeichen richtig? - Datenbanken
- MySQL Connector/J Handbuch - 19.3.4.4. Verwendung von Zeichensätzen und Unicode