J'ai commencer à créer mon site il y a plusieurs mois avec l'encodage iso-8859-1, puis j'ai relu le nouveau cours sur le HTML5/CSS3 pour me mettre à jour et me suis rendu compte que l'encodage conseillé est l'UTF-8
Avant ça, je croyais que c'était un encodage prévu uniquement pour les anglais, vu que j'avais des problèmes d'affichage avec les accents.
Je mets donc mon site à jour (progressivement) vers ce nouvel encodage. Pour les fichiers, je n'ai pas eu trop de problèmes, tout fonctionne de ce coté-là normalement.
Mais au niveau de la base de données, les accents s'affichent en � sur la page web (soi-disant que l'UTF-8 connait quasiment tous les caractères hein ), à part les chaînes qui sont entourées d'un htmlentities(). J'ai changé l'encodage en UTF-8 avec Navicat, mais ça ne change rien.
Je veux pas te dire de bêtises car je connais qu'à moitié le sujet mais voici mon idée.
Quand tu as enregistré les données dans ta base, tu avais un encodage iso-8859-1. Donc pour les afficher sur des pages dont le charset est UTF-8, forcément ça pose problème.
Il faudrait que tu mettes à jour tes données maintenant que tu as changé ton encodage.
As-tu changé l'encodage à la fois dans tes pages html ET dans ta base de données ?
Peut-être que même en changeant manuellement l'encodage de ta base de données elle a toujours "gardé en mémoire" ton premier encodage.
Voici un lien pour convertir ta base de données en UTF8. http://blog.kheb.fr/programmation/conv [...] rs-utf-8-230/
Citation : Alexmothe93
Il n'y aurait pas plutôt un logiciel qui saurait faire ça ? Ou une requête en SQL ?
Salut,
Essaie ceci :
0 - dans les options de ta base de données et de tes tables vérifie bien que tout les champs sont biens de type UTF8_general_ci et non latin1_... ou autre ;
1 - Exporte ta base de données en .SQL.
2 - Ouvre le fichier .SQL résultant de l'exportation et ouvre le avec Notepad++.
3 - Converti le fichier ouvert en UTF-8 via la commende dans le menu encodage ;
4 - Enregistre ton fichier sous un autre nom (au cas où) ;
5 - Supprime l'ancienne base de donnée et remplace-là par la nouvelle (encodage UTF8 donc).
Normalement cela devrait fonctionner. C'est ce que j'avais fait à l'époque pour mon site...
Bon, j'ai fait un dump des tables, le fichier était déjà en utf-8, j'ai mis tous les charset defaut en utf-8, supprimé les charset en iso, réinstallé la base, et ça n'a rien changé =S
Edit : Et ben ça ne marche toujours pas
Résumé de la situation actuelle : Les fichiers sont en UTF-8, le type d'encodage est défini en UTF-8, la base de données a été convertie en UTF-8 (enfin normalement) mais il ne reconnait pas les caractères qui viennent de la BDD à part ceux qui passent par htmlentities() et utf8_encode().
Ca règle le rpoblème à la source... Il suffit d'avoir un seul fichier avec ton code de connexion, et de faire un include de ce fichier pour te connecter, plutôt que d'avoir ce code partout.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Tutoriel complet MySQL !
Tutoriel complet MySQL !