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

Tipps zur Verwendung des Befehls „Docker Inspect“

Beschreibung und Einführung Docker Inspect ist ei...

MySQL Series 11-Protokollierung

Tutorial-Reihe MySQL-Reihe: Grundlegende Konzepte...

Beispiel-Tutorial für MySQL-Datenbanktransaktionen

Inhaltsverzeichnis 1. Was ist eine Transaktion? 2...

Fallstudie zu JavaScript-Funktionsaufrufen, Apply- und Bind-Methoden

Zusammenfassen 1. Ähnlichkeiten Beide können den ...

Müssen die Texte der Website noch gestaltet werden?

Viele fragen sich vielleicht: Muss der Text auf d...

Vue verwendet Plug-Ins, um Bilder proportional zuzuschneiden

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

Detailliertes Tutorial zur Installation von Docker unter Windows

Da meine lokale MySQL-Version relativ niedrig ist...

Zwei Arten von Tab-Anwendungen im Webdesign

Heutzutage werden Registerkarten häufig im Webdes...

Installationsprozess des mysql5.6.8-Quellcodes

Kernel: [root@opop ~]# cat /etc/centos-release Ce...

Detaillierte Erläuterung des Lernens von CSS-Zählerattributen

Das CSS-Zählerattribut wird von fast allen Browse...

Auf Wiedersehen Docker: So wechseln Sie in 5 Minuten zu Containerd

Docker ist eine sehr beliebte Containertechnologi...