Erreur de valeur de chaîne incorrecte lors de l'enregistrement de chaînes Unicode dans Django
Lorsque vous essayez d'enregistrer des chaînes Unicode dans le modèle auth_user de Django, vous pouvez rencontrer un message " erreur de valeur de chaîne incorrecte". Cette erreur est généralement provoquée par les paramètres de jeu de caractères et de classement MySQL.
Jeu de caractères et classement MySQL
MySQL prend en charge le jeu de caractères UTF-8, mais il a un Limite de 3 octets sur les caractères. Cela signifie qu'il n'est pas possible de stocker des caractères Unicode de 4 octets dans MySQL avec le jeu de caractères UTF-8 standard.
Explication du problème
Lorsque Django tente de sauvegarder chaînes Unicode au modèle auth_user, MySQL essaie de les convertir au jeu de caractères UTF-8. Cependant, si les chaînes contiennent des caractères de 4 octets, la conversion échoue et entraîne l'erreur « valeur de chaîne incorrecte ».
Solution
Pour résoudre ce problème, vous peut :
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', ... 'OPTIONS': {'charset': 'utf8mb4'}, } }
Supplémentaire Considérations
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!