Heim  >  Artikel  >  Java  >  Lösung für das Problem verstümmelter chinesischer Zeichen in der JDBC-Verbindungsdatenbank in Java

Lösung für das Problem verstümmelter chinesischer Zeichen in der JDBC-Verbindungsdatenbank in Java

WBOY
WBOYnach vorne
2023-04-26 14:04:081955Durchsuche

1. Verwenden Sie jdbc, um eine Verbindung zur Datenbank herzustellen. Beim Einfügen in die Datenbank werden verstümmelte Zeichen angezeigt.

Zwei Lösungen:

1. Ändern Sie die MySQL-Konfigurationsdatei Fügen Sie auf der Serverseite die Zeile „character_set_server = utf8“ unter [mysqld] hinzu und starten Sie den MySQL-Dienst neu

2. Geben Sie bei Verwendung von jdbc die richtige Codierung an: jdbc:mysql://127.0 .0.1:3306/test?useUnicode=true&characterEncoding= utf8

2. Warum ist Character_set_server = utf8 konfiguriert? Sie müssen die Codierung beim Herstellen einer Verbindung mit jdbc nicht angeben , jdbc fragt zunächst den Wert „character_set_server“ des Servers ab und bestimmt dann die beim Herstellen der Verbindung zu verwendende Codierung. Um die automatische Codierungserkennungsfunktion des Clients zu überschreiben, können Sie das Attribut „characterEncoding“ verwenden. Dokumentadresse: https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-charsets.html

3. Was ist der Zeichenverarbeitungsmechanismus von MYSQL?

Erklären Sie diese Parameter:

character_set_client: Der von den Client-Quelldaten verwendete Zeichensatz

character_set_connection: Der Zeichensatz der Verbindungsschicht character_set_database: Der Standardzeichensatz der aktuell ausgewählten Datenbank character_set_filesystem: Konvertieren Sie den Dateinamen auf dem Betriebssystem in Dieser Zeichensatz. Die Standardbinärdatei macht nichts. Konvertiert

character_set_results: Zeichensatz für Abfrageergebnisse

character_set_server: Standardzeichensatz für interne Operationen

character_set_system: Zeichensatz für Systemmetadaten

character_sets_dir: Pfad zum Zeichensatz Lösung für das Problem verstümmelter chinesischer Zeichen in der JDBC-Verbindungsdatenbank in Java

Ändern Sie die MySQL-Konfigurationsdatei Bearbeiten Sie auf der Serverseite die Datei my.cnf, fügen Sie unter [mysqld] eine Zeile „character_set_server = utf8“ hinzu, starten Sie dann den MySQL-Dienst neu und fragen Sie dann den Zeichensatz ab:



Dann verstehen Sie den Prozess der Zeichensatzkonvertierung:


Daten einfügen:

Der Server überträgt die Daten an den Client (character_set_client). Der Zeichensatz wird in „character_set_connection“ konvertiert, und dann wird der Zeichensatz „character_set_connection“ in den entsprechenden Zeichensatz konvertiert und auf der Festplatte gespeichert wird nach folgender Priorität beurteilt:

1. Der Zeichensatz, der beim Erstellen der Bibliothek eingestellt wurde

Lösung für das Problem verstümmelter chinesischer Zeichen in der JDBC-Verbindungsdatenbank in Java3. Der Zeichensatz, der beim Erstellen der Bibliothek festgelegt wurde

4 Daten abfragen:

Der Server konvertiert die Daten aus dem auf der Festplatte gespeicherten Zeichensatz in den Zeichensatz „character_set_results“, kehrt zum Client zurück und analysiert dann

1 JDBC setzt nicht „characterEncoding=utf8“, sondern „character_set_server“. latin1, jdbc stellt mit dem Zeichensatz latin1 eine Verbindung zur Datenbank her, und der Datenbankserver konvertiert latin1 in utf8 und speichert es dann auf der Festplatte (da die durch charakter_set_connection und die Erstellungstabelle angegebenen Zeichensätze beide utf8 sind), was zu verstümmelten Zeichen führt

2. jdbc setzt nicht „characterEncoding=utf8“, der Server „character_set_server“ ist „utf8“, oder jdbc setzt „characterEncoding=utf8“ und jdbc ist mit dem Zeichensatz „utf8“ verbunden. Datenbank, Datenbankserver speichert auf der Festplatte in utf8, dann sind die Daten normal

Das obige ist der detaillierte Inhalt vonLösung für das Problem verstümmelter chinesischer Zeichen in der JDBC-Verbindungsdatenbank in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen