Heim >Datenbank >MySQL-Tutorial >Warum erhalte ich die Fehlermeldung „Ungültige utf8-Zeichenfolge', wenn ich Emojis in meiner MySQL-utf8mb4-Datenbank speichere?

Warum erhalte ich die Fehlermeldung „Ungültige utf8-Zeichenfolge', wenn ich Emojis in meiner MySQL-utf8mb4-Datenbank speichere?

DDD
DDDOriginal
2024-12-09 12:50:14726Durchsuche

Why Am I Getting

Speichern von Emojis in der MySQL utf8mb4-Datenbank: Fehlerbehebung bei Fehlern aufgrund ungültiger Zeichen

Beim Versuch, Namen mit Emojis in einer MySQL-Datenbank zu speichern, werden Fehler wie „ Trotz ordnungsgemäßer Konfiguration kann es zu einer ungültigen UTF8-Zeichenfolge kommen. Ein potenzielles Problem liegt in inkonsistenten Zeichensatz- und Sortierungseinstellungen.

Um die Konfiguration zu überprüfen, führen Sie die folgende Abfrage aus:

SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';

Die Ausgabe sollte die folgenden Einstellungen für die betreffende Datenbank anzeigen:

+--------------------------+--------------------+
| Variable_name            | Value              |
+--------------------------+--------------------+
| character_set_client     | utf8mb4            |
| character_set_connection | utf8mb4            |
| character_set_database   | utf8mb4            |
| character_set_filesystem | binary             |
| character_set_results    | utf8mb4            |
| character_set_server     | utf8mb4            |
| character_set_system     | utf8               |
| collation_connection     | utf8mb4_unicode_ci |
| collation_database       | utf8mb4_unicode_ci |
| collation_server         | utf8mb4_unicode_ci |
+--------------------------+--------------------+

Stellen Sie sicher, dass die Werte für „character_set_client“, „character_set_connection“ und „character_set_results“ alle auf gesetzt sind utf8mb4. Wenn nicht, passen Sie diese Einstellungen entsprechend an.

Überprüfen Sie außerdem, ob die Konfigurationsdatei my.cnf Inkonsistenzen enthält. Suchen Sie nach Einstellungen, die Zeichensätze und Sortierungen angeben, und stellen Sie sicher, dass diese mit der Datenbankkonfiguration konsistent sind. Überprüfen Sie beispielsweise, ob diese Zeilen vorhanden sind:

character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

Wenn diese Einstellungen nicht vorhanden oder falsch sind, ändern Sie sie nach Bedarf und starten Sie den MySQL-Dienst neu.

Abschließend sollten Sie Folgendes ausführen Abfrage zum Festlegen des Zeichensatzes und der Sortierung für die aktuelle Verbindung:

SET NAMES utf8mb4;

Dadurch wird sichergestellt, dass alle drei Zeichensatzvariablen festgelegt sind korrekt.

Indem Sie diese Schritte befolgen, können Sie das Problem ungültiger UTF-8-Zeichenfehler beim Speichern von Emojis in einer MySQL-Datenbank mit utf8mb4-Konfiguration beheben.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich die Fehlermeldung „Ungültige utf8-Zeichenfolge', wenn ich Emojis in meiner MySQL-utf8mb4-Datenbank speichere?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn