salut les gars
bo j'ai un problème lorsque j'insère un caractère de type é ou à...dans la base de donnée
quelqu'un m'expliquer comment résoudre ce prb et merci ^^

9 réponses


PhiSyX
Réponse acceptée

Salut, il faut mettre :

// MySQL
mysql_query('SET NAMES utf8');
// PDO
$bdd->exec('SET NAMES utf8');

Si tu as toujours le problème mais lors d'un simple affichage de texte en php, il faut utiliser la fonction header() (Parce que tu n'utilises pas de balise <meta />)

Voilà :p

Les BDD sont par default en CHARSET et perso je n'ai jamais réussi a les convertir en UTF-8 . La solution est de passer par un script php pour ajouter les éléments via un formulaire HTML ;)
PS: C'est encodage pas codage :)
Bonne soirée;)

bo Ma page est faite en php

http://formation.upyupy.fr/html-xhtml/caracteres-speciaux/

Regarde ce lien, il y a des différents codes commençant par '&' , prend celui qu'il te faut, ça remplacera les é par exemple é = é

lors de l'insertion de données dans une table, é devient é dans la table.
La lecture ne pose pas de soucis, c'est seulement l'insertion.
J'ai aussi essayé de mettre array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\'') dans la connexion pdo mais du coup ni la lecture ni l'écriture ne fonctionnent.

Une idée de la marche à suivre ?
Merci beaucoup pour votre aide

Quand tu as créé ta base de données, tu l'a mis en quel encodage ?

L'encodage c'est toujours le bordel. Assure toi que tout est encodé pareil:
La page du formulaire
La table
La connection mysql avec SET NAMES UTF8

off aprés un long recherche jé trouver la solution bo:
j'ai met tout mes page encodage UTF-8 en ce cas l'insertion passe bien les l'affichage no é=>?
j'ai résoudre le prb avec htmlintitule($var'texte']);

Sinon essayes avec ISO-8859-1 dans un <meta/>

<?xml version="1.0" encoding="ISO-8859-1"?>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

Chez moi les accents passent.