С други думи, MySQL JDBC драйверът не поддържа кодирането на знаци, с което първоначално са изпратени знаците. MySQL JDBC драйверът по подразбиране използва кодирането по подразбиране на платформата, когато изпраща символни данни към DB, което може да бъде например ISO 8859-1. Трябва да му кажете да не прави това, като посочите useUnicode
и characterEncoding
параметри в URL адреса на JDBC.
jdbc:mysql://localhost:3306/db_name?useUnicode=yes&characterEncoding=UTF-8
Когато използвате Facelets като технология за изглед, JSF по подразбиране вече се задава на UTF-8, когато става въпрос за изобразяване на HTML съдържание и обработка на подадените стойности на параметри. Така че проблемът поне не е там.
Вижте също:
- Unicode – Как да получите символи, нали? - Бази данни
- MySQL Connector/J Ръководство - 19.3.4.4. Използване на набори от символи и Unicode