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

js, um die Produktionsmethode des Karussells zu realisieren

In diesem Artikel wird der spezifische Code für j...

Beispiel für die Bereitstellungsmethode „Forever+nginx“ einer Node-Site

Ich habe vor Kurzem den günstigsten Tencent-Cloud...

So installieren Sie die PHP7 Redis-Erweiterung auf CentOS7

Einführung Im vorherigen Artikel haben wir Redis ...

Einführung in Docker-Container

1. Übersicht 1.1 Grundlegende Konzepte: Docker is...

JavaScript zum Erzielen eines Tab-Umschalteffekts

In diesem Artikel wird der spezifische JavaScript...

HTML-Meta erklärt

Einführung Der Meta-Tag ist ein Hilfstag im HEAD-...

Detaillierte Erklärung wichtiger Kaskadierungskonzepte in CSS

Kürzlich stieß ich im Verlauf des Projekts auf ei...

So ändern Sie Farben und Designs in Vim unter Linux

Vim ist ein Texteditor, den wir unter Linux sehr ...

MySQL-Optimierungslösung: Aktivieren Sie das Protokoll für langsame Abfragen

Inhaltsverzeichnis Vorwort Einrichten der Protoko...

Semantik, Schreiben und bewährte Methoden für Link A

Die Semantik, der Schreibstil und die Best Practi...

Tutorial zur Installation von RabbitMQ mit Yum auf CentOS8

Geben Sie den Ordner /etc/yum.repos.d/ ein Erstel...