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

Gründe, warum MySQL-Abfragen langsam sind

Inhaltsverzeichnis 1. Wo ist die Langsamkeit? 2. ...

Einige Tipps zum Website-Design

Tatsächlich haben wir in letzter Zeit viel über W...

Der Kernprozess der NodeJS-Verarbeitung einer TCP-Verbindung

Vor ein paar Tagen habe ich mit einem Freund etwa...

So passen Sie einen EventEmitter in node.js an

Inhaltsverzeichnis Vorwort 1. Was ist 2. So verwe...

Eine Falle und Lösung bei der Verwendung von fileReader

Inhaltsverzeichnis Eine Falle bei fileReader Fall...

Der Unterschied zwischen ${param} und #{param} in MySQL

Der von ${param} übergebene Parameter wird als Te...

So konvertieren Sie ein JavaScript-Array in eine Baumstruktur

1. Nachfrage Das Backend stellt solche Daten bere...

Gemeinsame MySQL-Sicherungsbefehle und Shell-Sicherungsskripte

Um mehrere Datenbanken zu sichern, können Sie den...

Analyse und Beschreibung von Netzwerkkonfigurationsdateien unter Ubuntu-System

Ich bin heute auf ein seltsames Netzwerkproblem g...

js und jquery, um einen Tab-Statusleisten-Umschalteffekt zu erzielen

Heute werden wir einen einfachen Fall durchgehen ...