Encodage de caractères étranges des données stockées : l'ancien script s'affiche correctement, le nouveau script ne s'affiche pas
Problème :
Un site Web est en cours de réécriture à partir d'un moteur de base de données non spécifié vers un nouveau script à l'aide de Codeigniter. Le moteur de base de données d'origine affiche correctement les caractères persans, mais le nouveau script les affiche dans une police/un jeu de caractères étrange.
Détails supplémentaires :
- Jeu de caractères de la base de données : utf8
- Classement de la base de données : utf8_persian_ci
- Paramètres Codeigniter : 'char_set' = 'utf8', 'dbcollat' = 'utf8_persian_ci'
- Les données stockées dans la base de données apparaissent comme "عمران" lorsqu'elles sont saisies à l'aide de l'ancien script, mais comme "عم راÙ" lorsqu'il est récupéré à l'aide du nouveau script
Analyse :
Le problème réside dans la manière dont la connexion à la base de données est configurée. L'ancien script utilisait peut-être un paramètre spécifique qui interprète correctement les caractères persans, tandis que le nouveau script utilise un paramètre différent qui les fait apparaître incorrectement.
Solution :
-
Assurez-vous que la connexion à la base de données est correctement configurée. Vérifiez que le jeu de caractères et le classement de la base de données sont définis sur « utf8 » et 'utf8_persian_ci', respectivement.
-
Convertissez les données existantes dans la base de données. Utilisez l'instruction SQL suivante pour convertir les données de latin1 (le jeu de caractères supposé dans lequel la base de données stocke les données) en utf8 :
SELECT CONVERT(BINARY CONVERT(field_name USING latin1) USING utf8) FROM table_name
Copier après la connexion
-
Une fois les données converties, elles devraient afficher correctement dans le nouveau script. Sinon, une enquête plus approfondie sur les paramètres et le code du nouveau script peut être 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!