Caracteres speciaux accents dans mysql

Fermé
wanish - 12 mai 2011 à 00:51
 visiteur - 1 sept. 2011 à 14:04
Bonjour,

j'ai une question SVP, je veux insérer des donnée dans une base de donné MYSQL contenant é et à...., mais je trouve dans la base seulement les symboles comme ééÃ, s'il y a un code php qui permet d'insérer &eacoute au lieu de é ou bien une autre solution.



A voir également:

2 réponses

mpmp93 Messages postés 6652 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
12 mai 2011 à 15:02
Bonjour,

C'est un problème d'encodage des données entre le formulaire de saisie en HTML et celui de la base de données.

Sou PhpMyAdmin, ouvrir une table, regarder sa structure, il y a une colonne 'interclassement', on trouve par exemple: utf8_unicode_ci ou latin1_general_ci...

Le jeu utf8_general_ci accepte TOUS les encodages y compris les caractères russes, japonais, chinois, arabes, etc... et évidement accentués français.

En amont, il faut regarder le code HTML de la page, le template minimal est le suivant:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Titre de ma page</title>
</head>
<body>
    <p>Bonjour tout le monde</p>
</body>
</html>


en gras la ligne META qui force l'encodage en UTF8.

Ensuite, au moment d'ouvrir la base de données en mySql:

$db_selected = mysql_select_db($parameters->basename, $connection);
if (!$db_selected) {
    die('Impossible d\'utiliser la base : ' . mysql_error());
}
mysql_query("SET NAMES 'utf8'");


La dernière ligne est TRES IMPORTANTE. C'est elle qui force mySql à communiquer en UTF8 avec PHP tout au long de la chaîne de traitement.

A partir de ce moment, vous n'aurez plus aucun souci pour entrer ou sortir les caractères accentués dans la base de données, ainsi que tous les caractères de tous les alphabets existants, hyéroglyphes inclus...

A+
10
Merci !
0