Falscher String-Wertfehler beim Speichern von Unicode-Strings in Django
Beim Versuch, Unicode-Strings im auth_user-Modell von Django zu speichern, kann ein „ Fehler „Falscher Zeichenfolgenwert“. Dieser Fehler wird normalerweise durch den MySQL-Zeichensatz und die Sortierungseinstellungen verursacht.
MySQL-Zeichensatz und -Sortierung
MySQL unterstützt den UTF-8-Zeichensatz, verfügt jedoch über einen 3-Byte-Grenze für Zeichen. Dies bedeutet, dass es nicht möglich ist, 4-Byte-Unicode-Zeichen in MySQL mit dem Standard-UTF-8-Zeichensatz zu speichern.
Problemerklärung
Wenn Django versucht zu speichern Wenn Sie Unicode-Zeichenfolgen in das auth_user-Modell konvertieren, versucht MySQL, sie in den UTF-8-Zeichensatz umzuwandeln. Wenn die Zeichenfolgen jedoch 4-Byte-Zeichen enthalten, schlägt die Konvertierung fehl und führt zum Fehler „Falscher Zeichenfolgenwert“.
Lösung
Um dieses Problem zu beheben, müssen Sie kann:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', ... 'OPTIONS': {'charset': 'utf8mb4'}, } }
Zusätzlich Überlegungen
Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „Falscher String-Wert' beim Speichern von Unicode-Strings in Django?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!