Bonjour a tous,

j'ai bien fouillé partout avant de poster alors maintenant je vous pose mon problème.

avec mon formulaire de news j'envoie par exemple "éhéh salut", j'arrive a tout envoyer dans ma BDD, le problème c'est qu'arrivé dans ma BDD le "éhéh salut" c'est enregistré en "éhéh salut" ( y compris d'autre caractère).

donc voila je cherche et je trouve pas
j'ai essayé de changer le code de mon fichier .php ( actuellement : UTF-8 (sans BOM) )
j'ai essayé de changer l'Interclassement de ma table ( actuellement : utf8_general_ci )
ma page : <meta http-equiv="content-type" content="text/html; charset=utf-8" />
Mysql dans ma page : mysql_query('SET NAMES UTF8');

merci

4 réponses


Ciloe
Réponse acceptée

Salut. Pour ma part ça le fait tous le temps. Mais ça ne gène pas, puisque quand tu récupère ton texte dans la base de donnée, l'encodage se fait à l'inverse.

Tu devrais tout laisser en utf-8, aussi bien tes fichiers php et ta base de donnée.

La base de donnée ne sert à rien sauf à la sauvegarde donc si les caractères passent pas, c'est pas grave ^^

SnoT
Réponse acceptée

T'as qu'à faire un utf8_encode() au moment d'insérer dans ta BDD, et un utf8_decode() qd tu récupères tes données de la BDD.

Sinon tu fais un htmlentities() en insertion, et un html_entity_decode() en récupération, ca apporte aussi une protection supplémentaire (injection SQL, faille XSS).

kaloutch
Auteur
Réponse acceptée

j'ai trouver mon erreur je devais protéger mon site avec htmlentities et du coup sa ne marchai pas.
en faite c'etait tous bete il manquai du code .

htmlentities(stripslashes($message) ,ENT_QUOTES,'UTF-8' )

voila merci

kaloutch
Auteur

ok merci beaucoup