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

Schnelle und sichere Methode zum Umbenennen einer MySQL-Datenbank (3 Arten)

Inhaltsverzeichnis So benennen Sie eine MySQL-Dat...

Stellen Sie das Vue-Projekt auf einem Linux-Server bereit

Fall 1 vue-cli erstellt das vue3-Projekt, lädt da...

vue-table implementiert das Hinzufügen und Löschen

In diesem Artikelbeispiel wird der spezifische Co...

Installieren Sie CentOS 7 auf VMware14 – Grafik-Tutorial

Einführung in CentOS CentOS ist eine Linux-Distri...

Lassen Sie uns kurz über die Änderungen im Setup in vue3.0 sfc sprechen

Inhaltsverzeichnis Vorwort Standard-SFC-Schreibme...

Detaillierte Erklärung der HTML-Programmier-Tags und der Dokumentstruktur

Der Zweck der Verwendung von HTML zum Markieren v...

Detaillierte Erläuterung der MySQL-Indexprinzipien und -Optimierung

Vorwort Dieser Artikel wurde von einem hohen Tier...

Mehrere Grundsätze für die Produktdesign-Referenz auf Websites

In der folgenden Analyse geht es um Produktdesign...

Vue-Kapselungskomponententool $attrs, $listeners-Verwendung

Inhaltsverzeichnis Vorwort $attrs Beispiel: $list...

Zusammenfassung der HTML-Wissenspunkte für das Frontend (empfohlen)

1. HTML-Übersicht htyper Textauszeichnungssprache...

Detaillierte Erklärung der Truncate-Verwendung in MySQL

Vorwort: Wenn wir eine Tabelle löschen möchten, v...