Med andra ord, MySQL JDBC-drivrutinen stöder inte den teckenkodning som tecknen ursprungligen skickades med. MySQL JDBC-drivrutinen används som standard för plattformens standardkodning när teckendata skickas till DB, vilket kan vara till exempel ISO 8859-1. Du måste berätta för den att inte göra det genom att ange useUnicode
och characterEncoding
parametrar i JDBC URL.
jdbc:mysql://localhost:3306/db_name?useUnicode=yes&characterEncoding=UTF-8
När du använder Facelets som vyteknik, använder JSF redan UTF-8 som standard när det gäller att rendera HTML-innehåll och bearbeta inlämnade parametervärden. Så problemet finns åtminstone inte där.
Se även:
- Unicode – How to get the tecken eller hur? - Databaser
- MySQL Connector/J Manual - 19.3.4.4. Använda teckenuppsättningar och Unicode