Detaillierte Erläuterung der Lösung für verstümmelte Zeichen, wenn JDBC eine Verbindung zu MySQL herstellt, um Chinesisch zu verarbeiten

Detaillierte Erläuterung der Lösung für verstümmelte Zeichen, wenn JDBC eine Verbindung zu MySQL herstellt, um Chinesisch zu verarbeiten

Detaillierte Erläuterung der Lösung für verstümmelte Zeichen, wenn JDBC eine Verbindung zu MySQL herstellt, um Chinesisch zu verarbeiten

Vor Kurzem musste das integrierte Projekt eine Verbindung zu einer älteren Version des MySQL-Servers herstellen. Bei der Überprüfung mit Navicat wurde festgestellt, dass dieser MySQL-Server anscheinend keine Standardcodierung hat. Einige PHP-Dateien, die dieses MySQL betreiben, sollten die Codierung gb2312 verwenden. Bei der direkten Verwendung von JDBC-Operationen werden jedoch alle chinesischen Zeichen, die aus der Datenbank gelesen werden, verstümmelt.

Zuerst habe ich versucht, die Kodierungskonvertierung mit Methoden wie entity.setDepartName(new String(rs.getString("hg").getBytes("gbk"), "utf-8")); zu erzwingen. Dies schlug jedoch fehl, da die konvertierten Zeichen unabhängig von der verwendeten Methode immer verstümmelt waren und die Art der Verstümmelung jedes Mal anders war. Ziemlich deprimiert. Da in diesem Projekt außerdem andere Produkte verwendet werden, ist es nicht möglich, zusätzliche Dinge wie Filter hinzuzufügen. Dieses Problem lässt sich daher nicht so einfach lösen.

Es gab kein Problem mit der Verbindung und Abfrage über Navicat, also habe ich versucht, eine Tabelle nach SQL zu exportieren, um zu sehen, ob es im DDL eine Kodierungseinstellung gab. Das Ergebnis hat mich enttäuscht, weil die Kodierung überhaupt nicht geschrieben wurde. Also änderte ich die Erweiterung der exportierten SQL-Datei in HTML, öffnete sie mit IE und stellte fest, dass kein verstümmelter Code vorhanden war. Ich überprüfte das Kodierungsformat und stellte fest, dass es „gb2312“ war. Die Verwendung von Java zum Erzwingen der Transkodierung war jedoch erfolglos. Was sollte ich tun?

Darüber hinaus läuft dieses Projekt bereits seit vielen Jahren und es mangelt an Nachwartung. Die Datei my.ini kann nicht angezeigt und geändert werden.

Plötzlich fiel mir ein, dass ich bei der Verbindung mit MySQL Parameter hinzufügen kann und einige Parameter die Kodierung angeben. Kann das das Problem lösen?

Ändern Sie daher die Verbindungszeichenfolge (der ursprüngliche Wert lautet: url="jdbc:mysql://192.168.18.254:3306/web_oa) wie folgt:

url="jdbc:mysql://192.168.18.254:3306/web_oa?useUnicode=true&characterEncoding=gbk"

Starten Sie die Anwendung neu und überprüfen Sie, OK! Chinesisch ist normal.

Problem gelöst.

Diese Methode gibt beim Verbinden tatsächlich das GBK-Kodierungsformat an, wodurch vermieden wird, dass Client und Server bei der Interaktion ihre eigenen Standardkodierungsformate verwenden. Solange die Konfiguration angemessen ist, gibt es kein Problem mit verstümmeltem Code.

Wenn Sie Fragen haben, hinterlassen Sie bitte eine Nachricht oder kommen Sie zur Diskussion in die Community. Vielen Dank fürs Lesen und ich hoffe, es kann Ihnen helfen. Vielen Dank für Ihre Unterstützung dieser Site!

Das könnte Sie auch interessieren:
  • Beispiellösung zum Schreiben verstümmelter chinesischer Zeichen in MySQL in PHP
  • Verstümmelte Zeichen und Lösungen im MySQL-Zeichensatz
  • Lösung für das Problem mit verstümmeltem MySQL-Code unter Linux
  • So lösen Sie das Problem verstümmelter chinesischer Zeichen beim Einfügen von Tabellendaten in MySQL
  • Zusammenfassung der Behandlung des Problems der Ausnahme mit verstümmeltem Code bei der JDBC-Verbindung MySQL
  • Detaillierte Erklärung des Problems mit verstümmelten chinesischen Schriftzeichen in der MySQL-Datenbank
  • Lösen Sie das Problem verstümmelter Daten bei der MySQL-Datenbankmigration

<<:  Grafisches Tutorial zur Installation und Konfiguration von VMware Tools für Ubuntu 16.04 64-Bit

>>:  Detaillierte Erläuterung des React setState-Datenaktualisierungsmechanismus

Artikel empfehlen

VMware ESXI-Servervirtualisierungscluster

Inhaltsverzeichnis Zusammenfassung Umgebung und W...

Detaillierte Erklärung der Linux-RPM- und Yum-Befehle und -Verwendung

RPM-Paketverwaltung Ein Verpackungs- und Installa...

Implementierung eines statischen Website-Layouts im Docker-Container

Serverplatzierung Es wird empfohlen, Cloud-Server...

Centos erstellt ein Prozessdiagramm für den Chrony-Zeitsynchronisationsserver

Meine Umgebung: 3 centos7.5 1804 Meister 192.168....

Verwenden Sie Standard-DL-, DT- und DD-Tags, um Tabellenlisten zu verwerfen

Heutzutage beginnen immer mehr Front-End-Entwickle...

Eine kurze Erläuterung der Unterschiede zwischen FTP, FTPS und SFTP

Inhaltsverzeichnis Einführung in FTP, FTPS und SF...

Sonderzeichen in HTML anzeigen (mit Sonderzeichen-Korrespondenztabelle)

Reproduktion des Problems Beim Bearbeiten mit HTM...

Analyse der Prinzipien und Verwendung von Linux-Hardlinks und Softlinks

Im Linux-System gibt es einen Dateityp namens Lin...

Zusammenfassung einiger Vorschläge zum HTML-Code-Schreibstil

Das Protokoll der Ressourcendatei weglassen Es wi...

Detaillierte Erläuterung des MySQL 5.7.9-Shutdown-Syntaxbeispiels

mysql-5.7.9 bietet endlich eine Shutdown-Syntax: ...

Auswahl und Überlegungen zur MySQL-Datensicherungsmethode

Inhaltsverzeichnis 1. rsync, cp Dateien kopieren ...

js realisiert den Lupeneffekt von Produkten auf Einkaufswebsites

In diesem Artikel wird der spezifische Code von j...