Lösung für das Problem mit verstümmeltem MySQL-Code unter Linux

Lösung für das Problem mit verstümmeltem MySQL-Code unter Linux

Das Projekt interagiert mit dem Server, greift über Post auf die serverseitige JSP zu, und die JSP greift auf die serverseitige MySQL-Datenbank zu. Schließlich ist der an den Client zurückgegebene chinesische Text verstümmelt.

Während des gesamten Vorgangs kann es drei Gründe für den Fehler geben: Die Post-Kodierung ist nicht festgelegt oder die Kodierung ist inkonsistent, es liegt ein Problem mit JDBC vor und es liegt ein Problem mit der anfänglichen Kodierung von MySQL unter Linux vor.

Nach langwieriger Fehlersuche wurde schließlich festgestellt, dass es sich um ein MySQL-Kodierungsproblem handelte. Nachfolgend wird beschrieben, wie Sie das Problem der chinesischen Verstümmelung von MySQL unter Linux lösen können.

Rufen Sie zuerst den MySQL-Befehlszeilenmodus auf und geben Sie zum Aufrufen mysql -uroot -p ein. Geben Sie dann SHOW VARIABLES LIKE 'character_set_%';

Wenn der Anzeigeinhalt diesem ähnelt:

+--------------------------+----------------------------------------------+
| Variablenname | Wert |
+--------------------------+----------------------------------------------+
| Zeichensatzclient | utf8 |
| Zeichensatzverbindung | utf8 |
| Zeichensatzdatenbank | utf8 |
| Zeichensatz_Dateisystem | Binär |
| Zeichensatzergebnisse | utf8 |
| Zeichensatzserver | utf8 |
| Zeichensatzsystem | utf8 |
| Zeichensatzverzeichnis | /alidata/server/mysql-5.1.73/share/charsets/ |

Die Änderung war korrekt und die Standard-Anfangseinstellung von MySQL ist latin1 statt utf8.

Eine Lösung besteht darin, die Eigenschaften der Tabelle auf UTF-8 zu ändern oder beim Erstellen der Tabelle am Ende DEFAULT CHARSET=utf8 hinzuzufügen. Stellen Sie die Tabelle auf UTF-8-Code ein. Dieser Ansatz kann fehlschlagen.

Die grundlegendste Lösung besteht darin, die MySQL-Konfigurationsdatei zu öffnen und zu ändern. Die MySQL-Konfigurationsdatei unter Linux heißt my.cnf und das Verzeichnis ist /etc/my.cnf. Führen Sie nach dem Öffnen die folgenden Schritte aus:

--Fügen Sie drei Zeilen unter dem Tag [mysqld] hinzu: default-character-set = utf8
Zeichensatzserver = utf8
lower_case_table_names = 1 //Bei Tabellennamen wird nicht zwischen Groß- und Kleinschreibung unterschieden (das hat nichts mit der Kodierung zu tun)
--Fügen Sie unter dem Tag [mysql] eine Zeile hinzu: default-character-set = utf8
--Fügen Sie unter dem Tag [mysql.server] eine Zeile default-character-set = utf8 hinzu
--Fügen Sie unter dem Tag [mysqld_safe] eine Zeile default-character-set = utf8 hinzu
--Fügen Sie unter dem Tag [client] eine Zeile default-character-set = utf8 hinzu

Es macht nichts, wenn Sie nicht alle der oben genannten Tags finden können. Öffnen Sie die MySQL-Befehlszeile erneut und führen Sie SHOW VARIABLES LIKE 'character_set_%'; Wenn latin1 noch vorhanden ist, führen Sie den folgenden Befehl in der MySQL-Befehlszeile aus:

  • setze Zeichensatz-Client = utf8;
  • setze Zeichensatzserver = utf8;
  • setze Zeichensatzverbindung = utf8;
  • setze Zeichensatzdatenbank = utf8;
  • setze Zeichensatzergebnisse = utf8;
  • setze Kollationsverbindung = utf8_general_ci;
  • setze Kollationsdatenbank = utf8_general_ci;
  • setze Kollationsserver = utf8_general_ci;

Führen Sie nach der Ausführung den obigen Show-Befehl erneut aus, um das Zielergebnis zu erhalten.

Nachdem die Einstellungen abgeschlossen sind, müssen Sie MySQL neu starten und den Neustartbefehl /etc/init.d/mysqld verwenden.

Die ursprüngliche Datentabelle muss gelöscht und neu erstellt werden.

Endlich fertig, erledigt.

Zusammenfassung

1. Ändern Sie die Datei /etc/my.cnf und fügen Sie die folgenden Zeilen hinzu:

[Kunde]
# Rohr=
# socket=MYSQL
Port = 3306
Standardzeichensatz = utf8
[mysql]
kein Piepton
# Standardzeichensatz=
Standardzeichensatz = utf8
#SERVER-ABSCHNITT
# ----------------------------------------------------------------------
# Die folgenden Optionen werden vom MySQL-Server gelesen. Stellen Sie sicher, dass
# Sie haben den Server richtig installiert (siehe oben), so dass er dies liest 
# Datei.
# server_type=3
[mysqld]
Zeichensatzserver = utf8

2. Starten Sie den MySQL-Dienst neu:

Dienst MySQL stoppen;
Dienst-MySQL-Status;
Dienst MySQL starten;
Oder starten Sie den MySQL-Dienst neu.

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an

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
  • 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 Erläuterung der Lösung für verstümmelte Zeichen, wenn JDBC eine Verbindung zu MySQL herstellt, um Chinesisch zu verarbeiten
  • 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

<<:  Eine kurze Analyse zum Festlegen des Anfangswerts des Linux-Roots

>>:  Vue implementiert eine einfache Produktion von Zählern

Artikel empfehlen

js, um einen Ein- und Ausblendeffekt des Bildes zu erzielen

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

So implementieren Sie einen reibungslosen Neustart von Nginx

1. Hintergrund Während des Serverentwicklungsproz...

Vue3.0 implementiert die Kapselung des Dropdown-Menüs

Vue3.0 ist bereits seit einiger Zeit auf dem Mark...

Vue ruft die PC-Kamera auf, um die Fotofunktion zu realisieren

In diesem Artikelbeispiel wird der spezifische Co...

MySQL-Gruppierungsabfragen und Aggregatfunktionen

Überblick Ich glaube, dass wir häufig auf solche ...

Einführung in die SSL- und WSS-Schritte für die Nginx-Konfiguration

Inhaltsverzeichnis Vorwort 1. Nginx-Installation ...

So konfigurieren Sie Http, Https, WS und WSS in Nginx

Vorne geschrieben Im heutigen Internetbereich ist...

18 Sets exquisiter kostenloser Symbolmaterialien im Apple-Stil zum Teilen

Apple-Becher-Symbole und Extras HD StorageBox – Z...

Implementierung neuer Probleme mit CSS3-Selektoren

Inhaltsverzeichnis Grundlegende Selektorerweiteru...

TypeScript-Aufzählungstyp

Inhaltsverzeichnis 1. Übersicht 2. Digitale Aufzä...

Detailliertes Tutorial zur Konfiguration von Docker nginx + https-Subdomains

Heute habe ich zufällig einem Freund beim Umzug s...

Was ist BFC? So löschen Sie Floats mithilfe von CSS-Pseudoelementen

BFC-Konzept: Der Blockformatierungskontext ist ei...

Erfahren Sie, wie Sie saubere und standardmäßige HTML-Tags schreiben

Guter HTML-Code ist die Grundlage einer schönen W...