Maison >base de données >tutoriel mysql >Pourquoi Django génère-t-il des erreurs « Valeur de chaîne incorrecte » lors de l'enregistrement de chaînes Unicode sur SQLite ?
Erreur Django SQLite : "Valeur de chaîne incorrecte" lors de l'enregistrement des chaînes Unicode
Rencontre de l'erreur "Valeur de chaîne incorrecte" lors de l'enregistrement des chaînes Unicode dans Le modèle auth_user de Django peut être frustrant. Cette erreur indique généralement un problème avec l'encodage des caractères ou la longueur d'octet maximale autorisée pour la chaîne.
Cause :
La cause première de cette erreur est que MySQL a une limite de 3 octets sur les caractères Unicode utilisant le jeu de caractères utf-8. Cela signifie que les caractères nécessitant plus de 3 octets, tels que ceux avec des signes diacritiques ou des symboles spéciaux, ne peuvent pas être stockés dans les tables MySQL en utilisant le jeu de caractères utf-8.
Solution :
Pour résoudre ce problème, vous devez effectuer les étapes suivantes :
DATABASES = { 'default': { # ... other settings ... 'OPTIONS': {'charset': 'utf8mb4'}, } }
Variante PostgreSQL :
Si vous utilisez PostgreSQL comme backend de base de données, vous ne rencontrerez peut-être pas ce problème, car PostgreSQL prend en charge les caractères Unicode. d'une longueur maximale de 4 octets.
Conclusion :
En effectuant une mise à niveau vers MySQL 5.5 ou une version ultérieure et en utilisant le jeu de caractères utf8mb4, vous pouvez résoudre l'erreur « Valeur de chaîne incorrecte » lors de l'enregistrement des chaînes Unicode. à Django. N'oubliez pas de modifier vos paramètres Django et d'ajuster le schéma de votre base de données et la longueur des champs si nécessaire.
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!