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

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

Mary-Kate Olsen
Libérer: 2024-12-15 03:36:10
original
396 Les gens l'ont consulté

Why Are My Persian Characters Garbled After a Database Conversion?

Dilemme étrange de codage de caractères : perte de données stockées lors de la conversion de la base de données

Question :

Dans le but de réorganiser un système existant site Web, un développeur rencontre un problème énigmatique d’encodage de caractères. Le script original affiche correctement les caractères persans, à l'aide du moteur de base de données TUBADBENGINE, tandis que le script remanié affiche les mêmes données dans un format indéchiffrable. Quelle pourrait être la cause sous-jacente de ces écarts ?

Réponse :

La disparité provient du fait que la configuration de la connexion à la base de données n'est pas définie sur le codage de caractères approprié.

Le problème :

  1. PHP stocke la chaîne persane sous la forme Octets UTF-8.
  2. La connexion à la base de données transmet ces octets en supposant un codage Latin1, ce qui n'est pas le cas.
  3. La base de données interprète les octets en Latin1, en stockant les caractères incorrects.
  4. Lorsque le script remanié récupère les données, PHP attend un encodage UTF-8 et interprète les octets incorrectement.

Solution :

Pour résoudre ce problème, la connexion à la base de données doit être définie sur le codage de caractères correct. Cette conversion corrige les caractères stockés et garantit que le script remanié affiche correctement les données.

De plus, la requête suivante peut être utilisée pour convertir les données concernées dans la base de données :

SELECT CONVERT(BINARY CONVERT(field_name USING latin1) USING utf8) FROM table_name
Copier après la connexion

Une fois la conversion a été effectuée avec succès, elle peut être rendue permanente en mettant à jour la table concernée avec les données converties.

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