Mysql
 sql >> база данни >  >> RDS >> Mysql

проблем с utf8 в java

Съгласно документацията на MySQL JDBC драйвер трябва да зададете и кодирането на символи в URL адреса на JDBC връзка. Ето един пример:

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

В противен случай MySQL JDBC драйверът ще използва кодирането по подразбиране на платформата, за да преобразува знаците в байтове, преди да изпрати по мрежата, което във вашия случай очевидно не е UTF-8. След това всички непокрити знаци ще бъдат заменени с въпросителни.

Също така, когато извличате данните, трябва да се уверите, че конзолата/файлът, в който показвате/записвате знаците, също поддържа/използва UTF-8. В противен случай те също ще станат въпросителни. Как да поправите това зависи от това как/къде показвате/записвате тези знаци.

Вижте също:

Между другото, не се нуждаете от SET NAMES запитване тук.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да се свържа с локален хост с помощта на JDBC?

  2. MAX() срещу GREATEST() в MySQL:Каква е разликата?

  3. MySQL C# асинхронните методи не работят?

  4. Объркване на клаузата WHERE със ЗНП

  5. SQL - Премахване на скоби от телефонния номер