Suivez les fils RSS
 
Auteur
pareto
# 18 Mar 2010 - 15:04:36
Citer
163 Posts
Bonjour,

Le problème du jour : les caractères accentués
Voilà j'ai un formulaire où je récupère plusieurs variables pour les envoyer dans une BDD.

J'ai un problème quand l'utilisateur du formulaire entre des accents.
Par exemple le "é" devient "é"
j'ai essayer ça :
htmlspecialchars($description);

mais ça ne fonctionne pas mieux.

Ma bdd est "utf8_bin"
Comment dois-je faire pour obtenir de é ou des è...

Merci pour vos conseils
Modifié par pareto (18 Mar 2010 - 16:04)

^
Heyoan
# 18 Mar 2010 - 15:20:26
Citer
Modérateur
8101 Posts
Salut,

il faudrait commencer par lire Comment bien déclarer l'encodage des caractères d'une page.

Ensuite si tout est en utf-8 (headers, meta, encodage des document lors de l'enregistrement) il faut spécifier l'encodage de la connexion : juste après la sélection de la base
mysql_query("SET NAMES 'utf8'");
ou alors
mysql_set_charset('utf8'); 


^
juliesunset
# 18 Mar 2010 - 15:22:15
Citer
411 Posts
Salut!
J'avais eu un problème semblable avec l'un des mes formulaires.
htmlspecialchars, n'est pas du tout en relation avec les caractères spéciaux.

Faudrait plutôt utiliser "utf8_encode" ou "utf8_decode", c'est selon, à tester.

Julie

^
Heyoan
# 18 Mar 2010 - 15:24:08
Citer
Modérateur
8101 Posts
juliesunset a écrit :
Faudrait plutôt utiliser "utf8_encode" ou "utf8_decode", c'est selon, à tester.
En fait non : le mieux serait de comprendre Comment bien déclarer l'encodage des caractères d'une page. cligne

^
pareto
# 18 Mar 2010 - 15:24:36
Citer
163 Posts
merci pour ces pistes, je teste tout cela...

^
juliesunset
# 18 Mar 2010 - 15:26:33
Citer
411 Posts
biggol J'ai été grillé!
mais je suis pas une experte non plus!

Julie

^
pareto
# 18 Mar 2010 - 15:59:35
Citer
163 Posts
Ok j'ai lu mais....
même avec ça:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

en entête de ma page php ça ne marche pas...

----------------------------------------------------------------------------------------

Non maintenant ça marche !
avec ça
mysql_set_charset('utf8'); 

merci qui ?
merci HEYOAN ! biggrin
Modifié par pareto (18 Mar 2010 - 16:05)

^
juliesunset
# 18 Mar 2010 - 18:31:28
Citer
411 Posts
Effectivement ça fonctionne très bien! et du coup ça allège légèrement mon code!

Julie

^