caractere speciaux MYSQL "é"

Par kaloutch, il y a 14 ans


Base de données MySQL

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, il y a 14 ans

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, il y a 14 ans

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, il y a 14 ans

ok merci beaucoup

kaloutch, il y a 14 ans

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