Maison > base de données > tutoriel mysql > Pourquoi mes caractères persans s'affichent-ils incorrectement dans mon application CodeIgniter après la migration de la base de données ?

Pourquoi mes caractères persans s'affichent-ils incorrectement dans mon application CodeIgniter après la migration de la base de données ?

Susan Sarandon
Libérer: 2024-12-19 15:22:13
original
139 Les gens l'ont consulté

Why Are My Persian Characters Displaying Incorrectly in My CodeIgniter Application After Database Migration?

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal