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

Zwei Möglichkeiten zum Erstellen von SSH-Server-Aliasen in Linux

Vorwort Wenn Sie häufig über SSH auf viele versch...

So verwenden Sie dynamische Parameter und berechnete Eigenschaften in Vue

1. Dynamische Parameter Ab 2.6.0 können Sie einen...

Detaillierte Erklärung, wann Javascript-Skripte ausgeführt werden

JavaScript-Skripte können überall in HTML eingebe...

Einführung in die wichtigsten Browser und ihre Kernel

Trident-Kern: IE, MaxThon, TT, The World, 360, So...

Die entsprechenden Attribute und Verwendung von XHTML-Tags in CSS

Als ich anfing, Webseiten mit XHTML CSS zu entwer...

Ursachen und Lösungen für Verzögerungen bei der MySQL Master-Slave-Replikation

Inhaltsverzeichnis Ein kurzer Überblick über die ...

Der URL-Wert des SRC- oder CSS-Hintergrundbildes ist der Base64-codierte Code

Möglicherweise ist Ihnen aufgefallen, dass auf die...

Beispiel für die Verwendung von Dockerfile zum Erstellen eines Nginx-Images

Einführung in Dockerfile Docker kann automatisch ...

Üben Sie die Verwendung von Golang, um mit der Docker-API zu spielen

Inhaltsverzeichnis Installieren des SDK Lokalen D...

Detaillierte Erklärung dynamisch generierter Tabellen mit Javascript

*Seite erstellen: zwei Eingabefelder und ein Butt...