8795 sujets

Développement web côté serveur, CMS

bonjour a tous et merci d'avance a ceux qui pourront m'éclairer

je développe actuellement un site avec CMS integré et je m'arrache les cheveux sur les charsets
alors voila je suis plein de bonnes intentions et comme on dit partout que c'est mieux, je fais que du utf8.

mais voila mon souci
j'ai un formulaire d'entrée et des données qui sont ensuite envoyés dans une base
rien de compliqué
sauf que les accents rentrés dans le formulaire sont entrés dans la base comme : é

je sais que cela est du au fait que mon document est lu en ISO-8859-1 alors qu'il est encodé en UTF-8
mais c'est justement la ou ca coince : ma base est en UTF8 mon formulaire aussi, bref tout

la seule solution que j'ai trouvée c'est de mettre un utf8-decode avant d'inserer les données mais je trouve que ca n'a aucun sens

merci d'avance
essaye ceci juste après ta connexion à la bdd et avant ton insertion :
mysql_query("SET NAMES 'utf8'");


Mise à part ca, vérifie que ton fichier est enregistré en UTF-8 sans BOM
Modifié par Nukleo (28 Dec 2010 - 10:23)
merci ca marche nickel Smiley smile
tous mes fichiers sont bien en utf8 sans bom
j'avais bien exécuté le SET NAMES mais directement dans la base
en gros si j'ai bien compris il faut le faire avant chaque requête?

c'est quand même super compliqué tout ca, je pensais qu'avec mes fichiers en utf8 et ma base en interclassement utf8, il n' y aurait pas de problème

merci en tout cas, l'essentiel c'est que ca marche
PS : je le fais qu'une fois au moment de ma connexion :
mysql_connect($sHost, $sUser, $sPwd)or die ("Pb connexion serveur ".mysql_error());
mysql_select_db($sBase) or die ("Pb slection base ".mysql_error());
self::$connected = true;
mysql_query("SET NAMES 'utf8'") or die(mysql_error());

Modifié par Su4p (28 Dec 2010 - 15:08)