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

Stimmt es, dass der Webdesign-Stil umso besser ist, je einfacher er ist?

Ursprüngliche Adresse: http://www.webdesignfromsc...

Detaillierte Erklärung der Tastaturereignisse von Vue

Inhaltsverzeichnis Allgemeine Schlüsselaliase Sch...

Layui implementiert den Bestätigungscode der Anmeldeschnittstelle

In diesem Artikelbeispiel wird der spezifische Co...

Detaillierte Erklärung zum effizienten MySQL-Paging

Vorwort Normalerweise wird für MySQL-Abfragen mit...

Gedanken zu copy_{to, from}_user() im Linux-Kernel

Inhaltsverzeichnis 1. Was ist copy_{to,from}_user...

Empfohlene Methode zur Fehlerbehandlung für canvas.toDataURL image/png

Problemhintergrund: Es ist erforderlich, einen Sc...

Codebeispiele für allgemeine Vorgänge bei der Docker-Image-Verwaltung

Spiegelung ist auch eine der Kernkomponenten von ...

Lernen Sie einfach verschiedene SQL-Joins

Mit der SQL JOIN-Klausel können Zeilen aus zwei o...

Diagramm des Prozesses zur Implementierung eines Richtungsproxys durch Nginx

Dieser Artikel stellt hauptsächlich den Prozess d...

Lösung zum Einfügen eines Formulars mit einer Leerzeile oben und unten

Ich weiß nicht, ob Ihnen beim Erstellen einer Webs...

Details zur Verwendung der JS-Tag-Syntax

Inhaltsverzeichnis 1. Einführung in Label-Anweisu...