MySQL ist ein relationales Open-Source-Datenbankverwaltungssystem, das in verschiedenen Internetanwendungen weit verbreitet ist. Die in der Datenbank gespeicherten Daten können manchmal Chinesisch enthalten, sodass beim Importieren von Daten häufig verstümmelte Zeichen auftreten. In diesem Artikel wird die Lösung für den Import verstümmelter MySQL-Daten vorgestellt.
1. Ursachenanalyse
Wenn in MySQL der Zeichensatz der Datenbank und der Zeichensatz der Datentabelle nicht konsistent sind, werden die importierten Daten verstümmelt. Daher müssen Sie vor dem Importieren von Daten sorgfältig prüfen, ob die Zeichensätze der Datenbank und der Datentabelle konsistent sind. Wenn es inkonsistent ist, muss es geändert werden.
2. Ändern Sie den Zeichensatz
Zuerst müssen Sie sich bei der MySQL-Datenbank anmelden, die Datenbank aufrufen und den folgenden Befehl ausführen:
SHOW CREATE DATABASE `database_name`;
Dann können Sie das Zeichen sehen Legen Sie die Einstellungsanweisung fest, wie unten gezeigt:
CREATE DATABASE `database_name` /*!40100 DEFAULT CHARACTER SET utf8 */
Der utf8 hier ist der Zeichensatz der MySQL-Datenbank. Wenn Sie den Zeichensatz ändern müssen, können Sie die folgende Anweisung ausführen:
ALTER DATABASE `database_name` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Der utf8mb4 hier ist derselbe wie utf8 , aber es unterstützt mehr Zeichensätze. Es wird empfohlen, utf8mb4 zu verwenden.
Wenn der Zeichensatz der Datenbank geändert wurde, aber beim Importieren von Daten immer noch verstümmelte Zeichen angezeigt werden, ist es wahrscheinlich, dass der Zeichensatz der Datentabelle nicht mit dem der Datenbank übereinstimmt. Sie können den Zeichensatz der Datentabelle mit dem folgenden Befehl abfragen:
SHOW CREATE TABLE `table_name`;
Dann können Sie die Einstellungen des Zeichensatzes und der Sortierregeln sehen, wie unten gezeigt:
CREATE TABLE `table_name` ( `id` int(10) unsigned NOT NULL, `name` varchar(255) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CHARSET und COLLATE sind hier der Zeichensatz und die Sortierung Regeln bzw. Sie müssen sicherstellen, dass sie mit der Datenbank konsistent sind. Der Zeichensatz ist konsistent. Wenn es inkonsistent ist, können Sie die folgende Anweisung ausführen, um es zu ändern:
ALTER TABLE `table_name` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Hinweis: Das Ändern des Zeichensatzes kann sich auf die Leistung und den Speicherplatz der Datenbank auswirken und muss mit Vorsicht gehandhabt werden.
3. Datenkodierung konvertieren
Wenn beim Importieren von Daten verstümmelte Zeichen erscheinen, können Sie versuchen, die Datenkodierung zu konvertieren. Zu den gängigen Konvertierungstools gehören iconv und recode.
Mit iconv können Sie die Datenkodierung in die Zielkodierung umwandeln, beispielsweise GBK-kodierte Daten in die UTF-8-Kodierung konvertieren:
iconv -f GBK -t UTF-8 file.txt > file_utf-8.txt
-f bedeutet die ursprüngliche Kodierung, -t bedeutet die Zielkodierung, file.txt ist der ursprüngliche Datendateiname, file_utf-8.txt ist der konvertierte Dateiname.
recode ähnelt iconv. Sie können auch die Datenkodierung in die Zielkodierung konvertieren, z. B. GB2312-kodierte Daten in UTF-8-Kodierung konvertieren:
recode gb2312..utf8 file.txt
gb2312 stellt die ursprüngliche Kodierung dar, utf8 repräsentiert Die Zielkodierung, Datei .txt ist der ursprüngliche Datendateiname.
Bei Verwendung des Konvertierungstools müssen Sie darauf achten, ob das Kodierungsformat der Quelldatei und das Zielkodierungsformat korrekt sind, da sonst die konvertierten Daten immer noch verstümmelt sind.
4. Zusammenfassung
Die Lösung für den verstümmelten MySQL-Datenimport umfasst die Änderung des Zeichensatzes und die Konvertierung der Datenkodierung. Beim Ändern des Zeichensatzes müssen Sie sicherstellen, dass der Datenbankzeichensatz und der Datentabellenzeichensatz konsistent sind. Bei der Konvertierung der Datenkodierung müssen Sie auf die Richtigkeit der Quelldateikodierung und der Zielkodierung achten. Wenn keine der oben genannten Methoden das Problem verstümmelter Zeichen lösen kann, liegt möglicherweise ein Problem mit der Datenquelle selbst vor und Sie müssen überprüfen, ob die Datenquelle korrekt ist.
Das obige ist der detaillierte Inhalt vonLassen Sie uns über die Lösung für verstümmelte Daten sprechen, die in MySQL importiert werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!