sql >> Databasteknik >  >> RDS >> Mysql

problem med utf8 i java

Enligt dokumentationen för MySQL JDBC-drivrutinen du måste också ställa in teckenkodningen i JDBC-anslutningsadressen. Här är ett exempel:

jdbc:mysql://localhost:3306/db_name?useUnicode=yes&characterEncoding=UTF-8

Annars kommer MySQL JDBC-drivrutinen att använda plattformens standardkodning för att konvertera tecknen till byte innan den skickas över nätverket, vilket i ditt fall uppenbarligen inte är UTF-8. Alla tecken som inte är täckta kommer då att ersättas av frågetecken.

När du hämtar data måste du också se till att konsolen/filen där du visar/skriver tecknen till också stöder/använder UTF-8. Annars blir de också frågetecken. Hur man fixar det beror på hur/var du visar/skriver dessa tecken till.

Se även:

Förresten, du behöver inte SET NAMES fråga här.




  1. Mysql gå med och summan fördubblar resultatet

  2. i SQLite

  3. Emulerar en transaktionssäker SEKVENS i MySQL

  4. Fylla i JFreechart TimeSeriesCollection från Mysql DB?