So gehen Sie mit dem Fehler beim Einfügen seltener Zeichen in MySQL um (falscher Zeichenfolgenwert)

So gehen Sie mit dem Fehler beim Einfügen seltener Zeichen in MySQL um (falscher Zeichenfolgenwert)

Kürzlich wurde auf Unternehmensseite gemeldet, dass einige Benutzerinformationen nicht eingefügt werden konnten. Die Fehlermeldung war ähnlich wie „Falscher Zeichenfolgenwert: „\xF0\xA5…“. Aus dieser Meldung geht hervor, dass der Fehler wahrscheinlich dadurch verursacht wird, dass der Zeichensatz ein bestimmtes, nicht übliches Zeichen nicht unterstützt.

Hier ist das in der virtuellen Maschine reproduzierte Szenario:

Schritt 1, simulieren Sie die ursprüngliche Zeichensatzumgebung der Tabellenstruktur:

Test verwenden;
TABELLE ERSTELLEN `t1` (
 `id` int(10) NICHT NULL AUTO_INCREMENT,
 `real_name` varchar(255) ZEICHENSATZ utf8 STANDARD '' KOMMENTAR 'Name',
 `nick` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT 'Spitzname',
 PRIMÄRSCHLÜSSEL (`id`)
) ENGINE=InnoDBAUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Mitgliedskarte';

Schritt 2, seltene Wörter einfügen (mithilfe der SQLYog-Simulation):

1. Simulieren Sie zunächst die Online-Umgebung und legen Sie den Zeichensatz fest:

wKiom1kUGECCXdKDAAAV9L1hpEY173.png

2. Fügen Sie seltene Zeichen ein (für seltene Zeichen siehe: http://www.qqxiuzi.cn/zh/hanzi-unicode-bianma.php?zfj=kzb&ks=24E20&js=257E3)

wKioL1kUGEHCtaAvAABxJXp_7Ow741.png

Wir versuchen Wang einzufügen (in Word ALT gedrückt halten und 152964 eingeben). Sie können sehen, dass das Einfügen fehlgeschlagen ist.

Schritt 3. Ändern Sie den Zeichensatz von real_name:

Test verwenden;

alter table t1 change real_name real_name varchar(255) CHARACTER SET utf8mb4 DEFAULT '' KOMMENTAR 'Name';

Handelt es sich um eine große Online-Tabelle, kann diese mit pt-osc bearbeitet werden. Der Befehl lautet:

pt-online-schema-change -uroot -h localhost --alter=" realen Namen ändern realen Namen varchar(255) ZEICHENSATZ utf8mb4 STANDARD '' KOMMENTAR 'Name' " D=test, t=t1 --no-check-replication-filters --alter-foreign-keys-method=auto --recursion-method=none --quiet --charset=utf8mb4 --dry-run
pt-online-schema-change -uroot -h localhost --alter=" realen Namen ändern realen Namen varchar(255) ZEICHENSATZ utf8mb4 STANDARD '' KOMMENTAR 'Name' " D=test, t=t1 --no-check-replication-filters --alter-foreign-keys-method=auto --recursion-method=none --quiet --charset=utf8mb4 --execute

Schritt 4, fügen Sie das Experiment erneut ein:

1. Stellen Sie zuerst den Zeichensatz ein:

wKiom1kUGECCXdKDAAAV9L1hpEY173.png

2. Fügen Sie es erneut ein. Sie können sehen, dass das Einfügen erfolgreich war.

wKioL1kUGILTLvpxAAAdWKxKR5A899.png

Die Befehlszeilenabfrage enthält keinen unleserlichen Code:

wKiom1kUGIPyeykFAAAiRzDqNxs956.png

Das ist alles, Sie können darauf zurückgreifen.

Das könnte Sie auch interessieren:
  • Lösung für die Fehlermeldung "java.sql.SQLException: Incorrect string value:'\xF0\x9F\x92\xA9\x0D\x0A...'" beim Speichern von Emoticons in MySQL
  • MySQL löst bei der Ausnahmeanalyse einen falschen Zeichenfolgenwert aus
  • MySql-Fehler: Falscher Zeichenfolgenwert für Spalte
  • Lösung für falsche Zeichenfolgenwerte in MySQL

<<:  Ein vollständiges Beispiel für die Implementierung eines zeitgesteuerten Crawlers mit Nodejs

>>:  Bereitstellungsdokument für die Sicherheitseinstellungen des Win2008-Servers (empfohlen)

Artikel empfehlen

Detaillierte Erläuterung der gleichzeitigen Parameteranpassung von MySQL

Inhaltsverzeichnis Abfrage-Cache-Optimierung Über...

Detaillierte Schritte zur Installation von Nginx unter Linux

1. Nginx-Installationsschritte 1.1 Offizielle Web...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.24

MySQL ist das beliebteste relationale Datenbankma...

MariaDB-Remote-Login-Konfiguration und Problemlösung

Vorwort: Der Installationsvorgang wird nicht im D...

Die benutzerdefinierte Vue-Komponente implementiert eine bidirektionale Bindung

Szenario: Die von uns häufig verwendeten Interakt...

Detaillierte Erklärung der Methoden des fs-Moduls und des Path-Moduls in Node.js

Überblick: Das Dateisystemmodul ist ein einfacher...

isPrototypeOf-Funktion in JavaScript

Inhaltsverzeichnis 1. istPrototyp von() Beispiel ...

Tutorial zur Installation von MySQL 5.7.18 mit einem RPM-Paket

System: CentOS 7 RPM-Pakete: mysql-community-clie...

Verwandte Vorgänge zum Hinzufügen und Löschen von Indizes in MySQL

Inhaltsverzeichnis 1. Die Rolle des Index 2. Erst...