Maison >développement back-end >tutoriel php >Pourquoi mes caractères persans sont-ils tronqués après la migration de la base de données ?

Pourquoi mes caractères persans sont-ils tronqués après la migration de la base de données ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-15 11:48:12917parcourir

Why Are My Persian Characters Garbled After Database Migration?

Décoder les problèmes de codage des caractères dans le stockage de base de données

Une situation déroutante se produit lors de la migration des données d'un ancien site Web vers un nouveau script. Les caractères stockés, initialement rendus correctement par l'ancien script, apparaissent déformés dans le nouveau. Après enquête, on découvre que les caractères sont stockés dans un codage inhabituel.

L'ancien script utilise un moteur de base de données appelé TUBADBENGINE, qui ne présente aucune caractéristique particulière. Cependant, lorsque des données contenant des caractères persans sont insérées à l'aide de l'ancien script, ils sont stockés sous forme de caractères étranges dans la base de données.

En revanche, lorsque les données sont saisies directement dans la base de données à l'aide de SQL, le les caractères corrects sont conservés. Cependant, tenter de récupérer ces données à l'aide du nouveau script entraîne des caractères tronqués.

Le coupable, comme l'a révélé la réponse, est le codage de caractères utilisé pour la connexion à la base de données. Dans ce cas, la connexion à la base de données a été définie sur latin1, ce qui constitue un choix inapproprié pour les caractères persans. En conséquence, les caractères n'ont pas été convertis correctement lors de leur stockage dans la base de données.

Pour résoudre le problème, nous devons convertir les données de la base de données avec le codage de caractères correct. Une solution possible fournie dans la réponse est :

SELECT CONVERT(BINARY CONVERT(field_name USING latin1) USING utf8) FROM table_name

Cette requête peut être utilisée pour récupérer les données en utilisant le codage de caractères correct. Nous pouvons ensuite utiliser ce résultat comme instruction UPDATE pour corriger définitivement les données dans la base de données.

Une fois les données correctement encodées, le nouveau script devrait pouvoir les récupérer et les afficher correctement.

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!

Déclaration:
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