Witam,
Próbuje zapisać zawartość formularza przesłanego przez apke klienta w bazie MySQL'a, jednakże w miejsce polskich znaków malują się znaki zapytania. Po stronie serwera korzystam z Wildfly'a, EJB oraz JPA/Hibernate.
Sprawdzałem co jest dostarczane serwerowi: form.getContents()
- i w tym miejscu, encja wciąż zwraca polskie znaki. Po wywołaniu entityManager.persist(form)
- polskie znaki w bazie zamieniają się na ?
.
-
Tabele w bazie mam ustawione na UTF-8:
CHARSET=utf8 COLLATE=utf8_unicode_ci
. -
Próbowałem ustawić kodowanie poprzez dodanie
useUnicode=yes
,characterEncoding=UTF-8
,characterSetResults=UTF-8
orazconnectionCollation=utf8_general_ci
w connection URL:jdbc:mysql://localhost/db?autoReconnect=true&useUnicode=yes&characterEncoding=UTF-8$amp;characterSetResults=UTF-8&connectionCollation=utf8_general_ci
, jednakże ten sposób nie działa.
Fragment pliku standalone-full.xml, z którego korzysta Wildfly:
<!-- -->
<datasources>
<datasource jta="true" jndi-name="java:jboss/datasources/MySQLDS" pool-name="MySQLDS" enabled="true" use-ccm="true">
<connection-url>jdbc:mysql://localhost/db?autoReconnect=true&amp;useUnicode=yes&amp;characterEncoding=UTF-8$amp;characterSetResults=UTF-8&amp;connectionCollation=utf8_general_ci</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<driver>mysqlDriver</driver>
<security>
<user-name>user</user-name>
<password>***</password>
</security>
<validation>
<check-valid-connection-sql>select 1</check-valid-connection-sql>
<validate-on-match>true</validate-on-match>
<background-validation>false</background-validation>
</validation>
<timeout>
<set-tx-query-timeout>false</set-tx-query-timeout>
<blocking-timeout-millis>0</blocking-timeout-millis>
<idle-timeout-minutes>0</idle-timeout-minutes>
<query-timeout>0</query-timeout>
<use-try-lock>0</use-try-lock>
<allocation-retry>0</allocation-retry>
<allocation-retry-wait-millis>0</allocation-retry-wait-millis>
</timeout>
<statement>
<share-prepared-statements>false</share-prepared-statements>
</statement>
</datasource>
<drivers>
<driver name="mysqlDriver" module="com.mysql">
<xa-datasource-class>com.mysql.jdbc.Driver</xa-datasource-class>
</driver>
</drivers>
</datasources>
<!-- -->
Czy ktoś borykał się już z tym problemem i znalazł rozwiązanie?