THE ORB
Studio wird gestartet

Ungültiger Zeichenkettenwert: '\xF0\x9F...' für die Spalte

Jemand hatte ein Emoji im Namen, und deine Datenbank kann keine Emojis speichern.

groupsDieser Spieler kann nicht speicherncodeBraucht einen Entwickler

Mach das zuerst

Deine Datenbank und ihre Verbindung müssen utf8mb4 nutzen. Eine einmalige Umstellung.

bug_reportFüg lieber deine ganze Konsole ein

Was es bedeutet

Es wurde ein Zeichen geschrieben, das der Zeichensatz der Spalte nicht darstellen kann. Die Byte-Folge in der Meldung, die mit \xF0\x9F beginnt, ist ein Emoji: vier Bytes — und MySQLs altes utf8 ist eine Drei-Byte-Kodierung, die sie nicht speichern kann.

Was es auslöst

Sortiert danach, wie oft es die Antwort ist.

  1. 1

    Ein Emoji in einem Spielernamen oder einer Chatnachricht

    Mit Abstand die häufigste Form. Discord- und Steam-Namen sind voll davon.

  2. 2

    Die Datenbank ist utf8 und nicht utf8mb4

    MySQLs utf8 war schon immer ein unvollständiges UTF-8. utf8mb4 ist das echte.

  3. 3

    Der Zeichensatz der Verbindung ist nicht gesetzt

    Die Tabelle kann utf8mb4 sein und die VERBINDUNG trotzdem utf8 — es scheitert genauso. Das ist die, die alle übersehen.

  4. 4

    Akzentuierter oder CJK-Text in einer latin1-Spalte

    Ein älteres Schema, das nie migriert wurde.

Wie du erkennst, welcher deiner ist

SHOW VARIABLES LIKE 'character_set_%';
SHOW FULL COLUMNS FROM users;

Wenn die Spalte utf8mb4 sagt, die Verbindung aber utf8, liegt es am Verbindungsstring.

Wo du nachsehen musst

Der Verbindungsstring in der server.cfg und der Zeichensatz der Tabelle.

Wie du es behebst

Setz beides. Zuerst die Verbindung, denn das ist die vergessene Hälfte:

set mysql_connection_string "mysql://user:pass@host/db?charset=utf8mb4"

Dann das Schema:

ALTER DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE users CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Hängst du immer noch an deinem eigenen Code?

Diese Seite sagt, was dieser Fehler üblicherweise bedeutet. Füg deine Konsole in Server Fixer ein: es sortiert alles darin und sagt dir, was zuerst dran ist; und wenn du lieber nicht ranwillst, kann ORBIE das Script reparieren und dir die Resource fertig zum Einsetzen zurückgeben.

bug_reportServer Fixer öffnen

Für diese Art Fehler Script Optimizer erkennt die Abfragemuster, die das verursachen.

Fehler, die mit diesem zusammen auftreten