Encodage utf8... l'horreur !

Résolu/Fermé
bigeyes Messages postés 431 Date d'inscription vendredi 7 mai 2010 Statut Membre Dernière intervention 17 octobre 2015 - 8 nov. 2011 à 14:32
bigeyes Messages postés 431 Date d'inscription vendredi 7 mai 2010 Statut Membre Dernière intervention 17 octobre 2015 - 9 nov. 2011 à 11:06
Bonjour,

voilà des heures que je vais de forum en forum et que je teste des dizaines de "solutions", sauf qu'aucune ne fonctionne. mon problème ? tout bêtement changer l'encodage de ma base de données mysql pour que les élément s'affichent sans <?> (le losange noir avec un ? dedans) dès qu'il y a le moindre accent dans ma page php, signe que les éléments de ma bdd sont vus comme de l'iso 8859-1.

j'ai testé mysql_query("SET NAMES utf8") (utf8 avec ou sans guillemets simple, selon ce que disent les topics), modifié le fichier /etc/mysql/my.cnf en spécifiant l'encodage voulu, recréé une bdd à partir de zéro en spécifiant bien dès le début que je voulais de l'utf8, mais même ça ça ne change rien ! j'ai aussi fait un dump de ma bdd que j'ai ouvert dans un éditeur de texte, réenregistré en précisant que je voulais de l'utf8 puis rebalancé le tout dans la bdd, mais rien n'y fait !

mon site est en html5/css3 (utf8 aussi, pas de problème d'affichage pour la partie html), j'utilise apache2.2.21 et mysql 5.1.58 le tout sous debian sid (unstable) x64 pour des besoins de paquets récents. je précise que le problème ne vient pas de mon système unstable, puisque c'est pareil sous ubuntu 10.10 x64 avec apache2.2.16 et mysql 5.1.49

y'aurait pas une solution toute bête pour faire un truc aussi stupide ? ça commence à me faire désespérer...
merci :)

g@by

3 réponses

radgeur Messages postés 201 Date d'inscription samedi 25 septembre 2010 Statut Membre Dernière intervention 20 juin 2012 27
Modifié par radgeur le 8/11/2011 à 14:43
Bonjour,
Pourquoi tout simplement ne pas passer l'encodage de ton navigateur web en iso-8859-1?
0
bigeyes Messages postés 431 Date d'inscription vendredi 7 mai 2010 Statut Membre Dernière intervention 17 octobre 2015 48
Modifié par bigeyes le 8/11/2011 à 14:44
c'est que le reste du site (toute la partie html) est en utf8, qui m'évite d'avoir à écrire "& eacute;" pour afficher un bête "é", ce qui est quand même très pratique !
donc je préférerais passer la bdd en utf8 plutôt que l'inverse.

merci pour ta réponse !
0
radgeur Messages postés 201 Date d'inscription samedi 25 septembre 2010 Statut Membre Dernière intervention 20 juin 2012 27
8 nov. 2011 à 14:48
Personnellement je n'ai pas de problème, j'ai codé mon site en iso-8859-1 et mit mon navigateur aussi en iso et je n'ai aucun souci, il affiche parfaitement bien les é.
0
bigeyes Messages postés 431 Date d'inscription vendredi 7 mai 2010 Statut Membre Dernière intervention 17 octobre 2015 48
Modifié par bigeyes le 8/11/2011 à 14:52
parce que tout ton site est en iso, y compris tes pages html non ? pour écrire un caractère accentué tu dois taper dans ton fichier .html ou .php & eacute; pour avoir un é, & agrave; pour à, etc...
quand je passe le navigateur en iso j'ai bien les éléments de ma bdd qui s'affichent correctement, mais plus tout le reste, qui est en utf8 !
0
radgeur Messages postés 201 Date d'inscription samedi 25 septembre 2010 Statut Membre Dernière intervention 20 juin 2012 27
Modifié par radgeur le 8/11/2011 à 14:59
la question que je me pose alors c'est pourquoi tu ne code pas ton site en iso?
0
bigeyes Messages postés 431 Date d'inscription vendredi 7 mai 2010 Statut Membre Dernière intervention 17 octobre 2015 48
8 nov. 2011 à 15:03
j'ai passé mon site qui était en bon vieux xhtml 1.0 en html5, et j'ai aussi changé l'encodage pour simplifier l'écriture des caractères accentués dans les fichiers php, mais vu la me*de que c'est dans ma bdd maintenant je me demande si ça vaut le coup !
0
bigeyes Messages postés 431 Date d'inscription vendredi 7 mai 2010 Statut Membre Dernière intervention 17 octobre 2015 48
Modifié par bigeyes le 9/11/2011 à 11:07
bon, "solution" trouvée, utiliser la fonction utf8_encode après chaque echo :

echo utf8_encode($truc['machin']);

c'est pas ce qu'il y a de plus pratique mais ça a le mérite de marcher :) si quelqu'un a mieux je suis preneur !!!!!
0