Bonjour,

Après pas mal d'heure de recherche je viens sur ce forum pour m'aider a trouver une solution.

J'essaie desseperement de convertir un site de iso-8859-1 a UTF-8.
J'ai pourtant suivi pas mal de tuto différent and co mais rien n'y fait j'ai toujours des "�" à la place de "é" sur les données venant de mysql (pas de soucis pour les autres).

Je ne sais vraiment plus quoi faire. Voici l'adresse du site : www.vivafiesta-ceremonies.fr

Je vous remercie Smiley smile
Bonjour,

Pour commencer, il faudrait savoir de manière fiable quel est l'encodage des données dans ta base MySQL. Petit problème: il n'y a pas vraiment d'outil facile d'utilisation pour ça. Les interclassement des tables (par exemple utf8-general-ci) ne reflètent pas forcément l'encodage réel des données.

Tu peux être sûr que tes données sont en UTF-8 si:
- elles sont indiquées comme telles dans les métadonnées des tables (tables marquées comme étant en utf8-general-ci par exemple);
- un script PHP (ou autre) qui ouvre une connexion MySQL en UTF-8 (avec un SET NAMES UTF-8) ressort des données dont tu peux vérifier qu'elles sont en UTF-8 (ne serait-ce qu'en testant avec un navigateur web).

Dans ton cas, il y a deux problèmes possibles:
1. Des données pas en UTF-8 (à vérifier, donc).
2. Une connexion avec MySQL pas en UTF-8 (pour rappel, les connexions MySQL sont en ISO-8859-1 par défaut, et si les données sont marquées comme étant en UTF-8 alors MySQL va réaliser une conversion, corrompant ainsi les données).
Ces deux problèmes peuvent se cumuler pour ton plus grand bonheur. Smiley lol
tout d'abord, merci de vos réponses rapides.

Pour répondre aux interrogations :

Par rapport a mysql :
l'interclassement de mes tables ainsi que celui de mes champs est en : utf8_general_ci

J'ai également tout de suite apès mon mysql_select_db un : mysql_query("SET NAMES 'utf8'");

Et mes pages sont bien sauvegarder en UTF-8 aussi.

Le problème viens peut être du fait que mes données ont été enregistré en iso mais que je n'ai pas trouvé comment les convertir en utf-8 non ?
wachalala a écrit :
J'ai également tout de suite apès mon mysql_select_db un : mysql_query("SET NAMES 'utf8'");

Il faut le placer juste après la connexion. Même si ça ne joue pas forcément, ça me semble être le plus logique.

wachalala a écrit :
Le problème viens peut être du fait que mes données ont été enregistré en iso mais que je n'ai pas trouvé comment les convertir en utf-8 non ?

Donc tes données ne sont pas en UTF-8, mais sont marquées comme étant en UTF-8? Auquel cas, avec une connexion en UTF-8, tu récupèreras tes données sans conversion par MySQL... donc en latin1.

Pour convertir des données dans une base... là c'est relativement compliqué. Je ne connais pas les outils qui vont bien, mais il y en a qui existent.
j'ai beau cherché je n'ai toujours pas de solution,

En base de donnée ca m'affiche ca : Décoration papier
Sur le site coté admin : Décoration papier
Sur le site : D�coration papier

Quelqu'un sait pourquoi j'ai une telle différence ?
Bon j'ai finalement trouvé ^^

L'utf-8 n'est pas compatible avec strtolower ... donc j'ai du utiliser un mb_strtolower($text,'UTF-8') qui fonctionne ^^

Par contre pour phpmyadmin j'ai toujours des soucis d'affichage (Décoration papier)