Mysql
 sql >> Base de données >  >> RDS >> Mysql

Impossible d'obtenir le bon encodage dans MySQL

Quoi qu'il arrive à vos personnages, cela arrive avant qu'ils n'atteignent MySQL, je suppose. Les caractères sont convertis en nombres par l'ordinateur lorsque nous saisissons les caractères. Ensuite, ces chiffres voyagent d'ici à là, entre les formulaires Web et les serveurs, les serveurs Web et les interpréteurs de scripts, puis les serveurs de base de données et reviennent aux pages Web en suivant le même chemin.

Où et comment saisissez-vous vos données ? Les données doivent sortir comme elles sont entrées. Si vos données sont fournies via des formulaires Web, vérifiez les encodages de vos pages Web et la manière dont vous soumettez les formulaires. Comment vous les obtenez dans vos scripts PHP et comment vous les envoyez au serveur de base de données. Le coupable ici n'est probablement pas MySQL mais un autre endroit. Cela peut aussi être MySQL; mais ce n'est pas le seul lieu de mauvaise conduite possible et ce n'est probablement pas le cas.

Vérifiez vos pages, vérifiez les en-têtes à mesure qu'ils arrivent dans votre navigateur.

À propos des commentaires reçus par votre question, non, il n'est pas bon d'utiliser ISO5 car vous avez besoin de plusieurs familles ISO5. Vous devez opter pour un encodage Unicode, la plupart du temps, le meilleur étant utf-8. De plus, il ne s'agit pas de la bibliothèque MySQL que vous utilisez, sauf si cette bibliothèque contient des bogues connus, ce qui est très peu probable pour quelque chose d'aussi ancien. :) Vous devriez toujours utiliser tout ce qui est recommandé comme meilleures pratiques ; mais votre problème actuel n'est pas lié à la bibliothèque que vous utilisez. Le mal est à la différence entre la façon dont vous saisissez vos données et la façon dont vous les visualisez.