Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Problem mit UTF8 in Java

Gemäß der MySQL JDBC-Treiberdokumentation Sie müssen die Zeichencodierung auch in der JDBC-Verbindungs-URL festlegen. Hier ist ein Beispiel:

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

Andernfalls verwendet der MySQL-JDBC-Treiber die Standardcodierung der Plattform, um die Zeichen vor dem Senden über das Netzwerk in Bytes zu konvertieren, was in Ihrem Fall anscheinend nicht UTF-8 ist. Alle nicht abgedeckten Zeichen werden dann durch Fragezeichen ersetzt.

Außerdem müssen Sie beim Abrufen der Daten sicherstellen, dass die Konsole/Datei, in der Sie die Zeichen anzeigen/schreiben, auch UTF-8 unterstützt/verwendet. Andernfalls werden sie ebenfalls zu Fragezeichen. Wie Sie das beheben können, hängt davon ab, wie/wo Sie diese Zeichen anzeigen/schreiben.

Siehe auch:

Übrigens brauchst du die SET NAMES nicht hier abfragen.