So lösen Sie das Problem verstümmelter chinesischer Zeichen beim Einfügen von Tabellendaten in MySQL

So lösen Sie das Problem verstümmelter chinesischer Zeichen beim Einfügen von Tabellendaten in MySQL

1. Problem

Während der Entwicklung wird beim Einfügen von Daten aus anderen Datenbanken in die MySQL-Datenbanktabelle immer ein Fehler ähnlich dem folgenden gemeldet:

Falscher Zeichenfolgenwert: '\xE6\x88\x91' für Spalte 'Name' in Zeile 1

2. Analyse

1. Ich habe zunächst die Typen dieses Felds in den beiden Datenbanktabellen überprüft und festgestellt, dass es sich bei beiden um varchar handelt. Es liegt also kein Problem mit Einfügefehlern aufgrund inkonsistenter Typen vor.

2. Nachdem ich den durch inkonsistente Feldtypen verursachten Fehler beseitigt hatte, vermutete ich, dass es sich um ein Problem mit verstümmelten chinesischen Zeichen handelte. Dann fügte ich rein englische Daten ein und stellte fest, dass kein Fehler auftrat. Daher stellte ich fest, dass es sich um ein Problem mit verstümmelten chinesischen Zeichen handelte. Dann habe ich Baidu durchsucht und festgestellt, dass die verstümmelten chinesischen Zeichen durch das Standardcodierungsproblem von MySQL verursacht wurden.

3. Lösung

1. Überprüfen Sie die Konfigurationsdatei my.ini im lokalen MySQL-Installationsdateiverzeichnis, um zu sehen, ob die Standardkodierung von Server und Client UTF-8 ist.

[mysqld]
# Der vom Server verwendete Standardzeichensatz ist UTF8
Zeichensatzserver = utf8

[Kunde]
# Legen Sie den Standardport fest, der vom MySQL-Client für die Verbindung zum Server verwendet wird default-character-set=utf8

2. Nachdem der vorherige Schritt korrekt ist, öffnen Sie die Befehlszeile und geben Sie ein: net start mysql , um den MySQL-Dienst zu starten;

Nachdem die Meldung „Der Dienst wurde erfolgreich gestartet“ angezeigt wird, geben Sie den Befehl „mysql“ ein, um die Datenbank zu verwenden;

Überprüfen Sie show create table test.xtt_test_copy; “ ein.

Wie in der Abbildung oben gezeigt, ist der Standardwert „latin1“ statt „utf8“. Sie müssen ihn weiterhin manuell ändern. Geben Sie den Befehl „ ALTER TABLE test.xtt_test_copy CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; “ ein und geben Sie anschließend den Befehl „ show create table test.xtt_test_copy; in „utf8“ geändert wurde.

Überprüfen Sie show creat database test; “ ein.

Wie in der Abbildung oben zu sehen, ist der Standardwert „latin1“ statt „utf8“. Sie müssen ihn weiterhin manuell ändern. Geben Sie den Befehl „ ALTER DATABASE test DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; “ ein und geben Sie anschließend den Befehl „ SHOW CREATE database test; “ ein, um zu überprüfen, ob die Zeichensatzkodierung der Standarddatenbanktabelle auf „utf8“ geändert wurde.

3. Starten Sie abschließend den Dienst neu.

mysql> net stop mysql;
mysql> net start mysql;

Bei unserer täglichen Verwendung von MySQL stoßen wir häufig auf verstümmelte chinesische Schriftzeichen. Basierend auf meiner üblichen Arbeitserfahrung habe ich die folgenden vier Punkte zusammengefasst, die beachtet werden müssen:

1. Konfigurieren Sie den Zeichensatz beim Start von MySQL in der Datei myini als „default-character-set=character set“ und platzieren Sie ihn über [WinMySQLadmin].

2. Legen Sie den Zeichensatz während der Erstellung der Datenbanktabelle in der Zeichensatzanweisung CHARSET= am Ende der CREATE-Anweisung fest.

3. Legen Sie den Zeichensatz in den Optionen in der Treiber-URL fest: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=character set;

4. Legen Sie den angezeigten Zeichensatz auf der Webseite fest: <%@ page contentType="text/html; charset=character set" language="java" import="java.sql.*" errorPage="" %>Im Servlet lautet dies response.setContentType("text/html; charset=character set");

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. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • Lösung für das Problem, dass chinesische Schriftzeichen beim Einfügen in Mysql in vollständige Fragezeichen umgewandelt werden???
  • Fünf Möglichkeiten, chinesische Schriftzeichen ohne verstümmelte Zeichen in MySQL einzufügen
  • Lösen Sie das Problem, dass MySQL keinen chinesischen falschen Zeichenfolgenwert einfügen kann
  • MySQL kann keine chinesischen Zeichen einfügen
  • Mysql-Einfügen von Chinesisch und chinesische Abfrage (Änderung + Debuggen)
  • Bringen Sie Ihnen einen Trick bei, um das Problem des Einfügens chinesischer Zeichen in MySQL dauerhaft zu lösen

<<:  Detaillierte Erläuterung zweier Möglichkeiten zur Implementierung der Sitzungspersistenz im Nginx-Reverse-Proxy

>>:  Eine kurze Diskussion darüber, wie man JS Schritt für Schritt lernt

Artikel empfehlen

HTML-Bildlaufleisten-Textbereichsattributeinstellung

1. Überlaufinhalt-Überlaufeinstellungen (festlegen...

Vue implementiert Multi-Tab-Komponente

Um die Wirkung direkt zu sehen, wurde ein Rechtsk...

Detaillierte Erklärung der Anzeigemodi in CSS-Tags

Beschriftungsanzeigemodus (wichtig) Div- und Span...

Nodejs implementiert Intranet-Penetrationsdienst

Inhaltsverzeichnis 1. Proxy im LAN 2. Intranet-Pe...

Sehr praktische Methode zur Implementierung des Tomcat-Startskripts

Vorwort Es gibt ein Szenario, in dem das Unterneh...

Warum ist es langsam, wenn Limit- und Offset-Paging-Szenarien verwendet werden?

Beginnen wir mit einer Frage Als ich vor fünf Jah...

Sperrt Mysql ALTER TABLE die Tabelle beim Hinzufügen von Feldern?

Inhaltsverzeichnis Vor MySQL 5.6 Nach MySQL 5.6 Z...

So wählen Sie zwischen MySQL CHAR und VARCHAR

Inhaltsverzeichnis VARCHAR- und CHAR-Typen Abschl...

Detaillierte Erklärung, wie eine SQL-Anweisung in MySQL ausgeführt wird

Überblick Ich habe vor Kurzem begonnen, mir Wisse...

Vue3-Zeitstempelkonvertierung (ohne Verwendung von Filtern)

Wenn vue2 Zeitstempel konvertiert, verwendet es i...

Verwenden von Shadowsocks zum Erstellen eines transparenten LAN-Gateways

Inhaltsverzeichnis Installieren und konfigurieren...

Analyse des MySQL-Beispiels DTID Master-Slave-Prinzip

Inhaltsverzeichnis 1. Grundkonzepte von GTID 2. G...

Analyse des Problems des Datenverlusts durch erzwungene Aktualisierung von Vuex

vuex-persistenter Zustand Kernprinzip: Alle Vuex-...