Ursachen und Lösungen für das Problem des verstümmelten Zeichensatzes in der MySQL-Datenbank

Ursachen und Lösungen für das Problem des verstümmelten Zeichensatzes in der MySQL-Datenbank

Vorwort

Manchmal sehen wir beim Anzeigen von Datenbankdaten verstümmelte Zeichen. Tatsächlich liegt es, unabhängig von der Art der Datenbank, meist an Problemen mit den Zeichensatzeinstellungen der Datenbank, wenn verstümmelte Zeichen auftreten.

Als Nächstes stellen wir die Einstellung des Datenbankzeichensatzes und die Lösung für das Problem des verstümmelten Codes vor.

Zeichensatz der MySQL-Datenbank

Einfach ausgedrückt ist ein Zeichen wie ein einzelnes Wort, eine Kodierung ist wie eine Zahl, die jedem Wort zugewiesen wird, ein Zeichensatz ist wie eine Sammlung von Zeichen und Kodierungen und eine Validierungsregel ist die entsprechende Sortierregel des Zeichensatzes. Der Zeichensatz plus die entsprechende Validierungsregel sind die Sprache. (Jeder Zeichensatz kann mehrere Sortierungen haben, es gibt jedoch eine Standardsortierung.)

Die MySQL-Datenbank kann Zeichen mithilfe des entsprechenden Zeichensatzes und der Überprüfungsregeln organisieren, indem sie den Zeichensatz festlegt. Es ist, als würde man diese Sprache zur Interpretation eines Artikels verwenden. Beispiel: Die von Chinesen häufig verwendete UTF-8-Kodierung stellt Chinesisch dar.

MySQL kann mehrere Zeichensätze unterstützen. Für verschiedene Tabellen in derselben Datenbank und verschiedene Felder in derselben Tabelle kann die Verwendung unterschiedlicher Zeichensätze angegeben werden.

MySQL-Zeichensatzregeln

Die von MySQL einstellbaren Zeichensätze sind:

  1. Der Zeichensatz des Servers
  2. Der Zeichensatz der Datenbank
  3. Zeichensatzwort
  4. Segmentzeichensatz

Wenn auf einer Ebene der Zeichensatz nicht festgelegt ist, erbt diese den Zeichensatz der darüber liegenden Ebene.

So lösen Sie das Zeichensalat-Problem der MySQL-Datenbank (d. h. wie ändern Sie den Zeichensatz)

【1】Zeigen Sie die von MySQL unterstützten Zeichensätze an

Zeichensatz anzeigen;

Geben Sie hier die Bildbeschreibung ein

【2】Überprüfen Sie den Datenbankcode

Variablen wie „character_set%“ anzeigen;

Geben Sie hier die Bildbeschreibung ein

【3】Zeigen Sie den aktuell von MySQL verwendeten Zeichensatz an

Variablen wie „Zeichen%“ anzeigen;

Geben Sie hier die Bildbeschreibung ein

Analyse:

character_set_client: Der Zeichensatz der Client-Anforderungsdaten

character_set_connection: Der Zeichensatz der Client- und Serververbindung

character_set_database: Der Zeichensatz der Standarddatenbank. Wenn keine Standarddatenbank vorhanden ist, wird der durch character_set_server angegebene Zeichensatz verwendet (es wird empfohlen, ihn nicht nach Belieben zu ändern).

character_set_filesystem: Konvertiert character_set_client in character_set_filesystem (Standard ist binär, es wird keine Konvertierung durchgeführt)

character_set_results: an den Client zurückgegebener Zeichensatz

character_set_server: Der Standardzeichensatz des Datenbankservers

character_set_system: Systemzeichensatz, der Standard ist UTF8. (Namen von Datenbanktabellen, Spalten und Funktionen, die in Katalogtabellen gespeichert sind)

character_sets_dir: Speicherpfad für MySQL-Zeichensatzdateien

Ursachen für verstümmelte Zeichen

character_set_client stimmt nicht mit dem tatsächlichen überein
character_set_results stimmt nicht mit der Clientseite überein

【4】 Zeigen Sie die Korrekturleseregeln der aktuellen Datenbank an

Variablen wie „Collation%“ anzeigen;

Geben Sie hier die Bildbeschreibung ein

Analyse:

Die Benennungsregel des Wertes: Zeichensatzname + Sprache + Suffix

collation_connection : Der Zeichensatz der aktuellen Verbindung

collation_database: Die Standardsortierung für das aktuelle Datum

collation_server : Die Standardsortierung des Servers

Die Bedeutung der Suffixe:
ci: Groß-/Kleinschreibung wird nicht beachtet
cs: Groß-/Kleinschreibung beachten
bin: binäre Sortierung

【5】Zeichensatz ändern

Lösen Sie das verstümmelte Problem (im Allgemeinen wie folgt)

<1> Temporär (nur im Moment wirksam, wird nach Verlassen und erneutem Aufrufen auf die ursprüngliche Einstellung zurückgesetzt)

setze Zeichensatz-Client = "utf8";
setze Zeichensatzverbindung = "utf8";
setze Zeichensatzergebnisse = "utf8";

oder

Namen festlegen utf8;

<2>Permanent (nach dem Ändern der Konfigurationsdatei müssen Sie MySQL neu starten)
Ändern oder ergänzen Sie die Konfigurationsdatei my.cnf von MySQL um Folgendes:

[Kunde]
Standardzeichensatz = utf8 

[mysqld]
Zeichensatzserver = utf8 


[mysql]
Standardzeichensatz = utf8

Bemerkung

<1>
In Bezug auf die Parameter unter mysqld sind nach der Überprüfung mit mysql5.5 alle folgenden Schreibmethoden akzeptabel, und die Änderung schlägt aufgrund des Unterstrichs nicht fehl:

Zeichensatzserver = utf8
Zeichensatzserver = utf8

<2>
In Bezug auf die Änderung der Konfigurationsdatei ist die MySQL-Konfigurationsdatei aufgrund der Kompilierung und Installation manchmal nicht unbedingt /etc/my.cnf, sodass die Änderung nicht erfolgreich ist.

<3>
Starten Sie MySQL neu, nachdem Sie die Konfigurationsdatei geändert haben. Bitte überprüfen Sie, ob Zeichensatz und Sortierregeln wie folgt lauten:

Das Folgende ist erfolgreich. Wenn Sie zum Herstellen einer Verbindung ein Drittanbietertool wie Navicat verwenden, werden chinesische Schriftzeichen immer noch verstümmelt. Versuchen Sie, die Kodierung des Tools zu ändern.

Bildbeschreibung hier einfügen

Bildbeschreibung hier einfügen

Dies ist das Ende dieses Artikels über die Ursachen und Lösungen für das Problem des verstümmelten Zeichensatzes in der MySQL-Datenbank. Weitere verwandte Inhalte zum Problem des verstümmelten Zeichensatzes in der MySQL-Datenbank finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die verwandten Artikel weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Tutorial zum Anzeigen und Ändern von MySQL-Zeichensätzen
  • So ändern Sie den MySQL-Zeichensatz
  • So ändern Sie den MySQL-Zeichensatz utf8 in utf8mb4
  • So vereinheitlichen Sie den Zeichensatz einer vorhandenen MySQL-Datenbank
  • Verstümmelte Zeichen und Lösungen im MySQL-Zeichensatz
  • Detaillierte Erläuterung der JDBC-Verarbeitung des Mysql utf8mb4-Zeichensatzes
  • Lösung für Indexfehler in MySQL aufgrund unterschiedlicher Feldzeichensätze
  • So ändern Sie den Standardzeichensatz von MySQL auf dem MAC auf UTF-8
  • So legen Sie den Zeichensatz für MySQL unter Docker fest
  • So lösen Sie das Problem der Nichtübereinstimmung des MySQL-Abfragezeichensatzes
  • Detaillierte Erklärung der Zeichensätze und Validierungsregeln in MySQL

<<:  Analyse der Verwendung des Linux-Schwachstellen-Scan-Tools lynis

>>:  Detaillierte Erläuterung des Falls, in dem eine untergeordnete Vue-Komponente die Methode der übergeordneten Komponente aufruft

Artikel empfehlen

Analyse und Anwendung des Wasserfallflussprinzips unregelmäßiger Bilder

Das im Projekt aufgetretene Layoutproblem unregel...

JavaScript-Webformularfunktion Kommunikation voller praktischer Informationen

1. Einleitung Vorher haben wir über das Front-End...

Verwendung des SerialPort-Moduls in Node.js

Inhaltsverzeichnis Zweck Modulinstallation Grundl...

Was sind die Attribute des JSscript-Tags

Was sind die Attribute des JS-Skript-Tags: charse...

So laden Sie Projekte im Linux-System in die Code Cloud hoch

Erstellen Sie ein neues Projekt test1 auf Code Cl...

So erkennen Sie mit Apache Tika, ob eine Datei beschädigt ist

Apache Tika ist eine Bibliothek zur Dateityperken...

Allgemeine Linux-Befehle chmod zum Ändern der Dateiberechtigungen 777 und 754

Der folgende Befehl wird häufig verwendet: chmod ...