MySQL et les collations

Fermé
Nonos - 16 févr. 2008 à 11:32
 Nonos - 16 févr. 2008 à 19:20
Bonjour,

Je suis actuellement en train de développer un site avec un formulaire d'inscription, mais lorsque les gens indiquent un nom, prénom ou autre avec des caractères spéciaux (é, ä, è, î, ï, ...), ma base de données stocke ces valeurs de la forme suivante éà üèöîï ... Comment corriger ce problème? J'ai essayé de changer la collation (utf8_swedish_ci, utf8_unicode_ci, utf8_general_ci, ...), mais rien ne semble marcher. Mon site est en français, et j'ai encodé les caractères spéciaux de mes fichiers xhtml, php avec leur valeur unicode é pour é.

Merci de votre aide!

7 réponses

s.spark Messages postés 2485 Date d'inscription vendredi 29 octobre 2004 Statut Contributeur Dernière intervention 13 février 2018 618
16 févr. 2008 à 11:44
Salut,

Mes pages sont enregistré en UFT-8, et mes champs dans ma BDD sont aussi en UFT8_general_ci, mon interface phpmyadmin est aussi configuré pour être en UTF_8, et malgré cela les caractères affiché dans phpmyadmin sont buggé comme toi, mais cela ne pose aucun problème, sur le site tout s'affiche normalement.

j'ai encodé les caractères spéciaux de mes fichiers xhtml, php avec leur valeur unicode é pour é.

Tu veux dire les entité html ???
0
Oui, je crois. En fait je pensais pas que ça se "traduirait"... je voulais dire: &# 233; (j'ai ajouté un espace pour que ça se traduise pas!).

Donc même si à priori dans la base c'est mal affiché, lorsque je l'utilise ou si je l'exporte (en excel par exemple), cela ne pose pas de problemes?

Merci
0
s.spark Messages postés 2485 Date d'inscription vendredi 29 octobre 2004 Statut Contributeur Dernière intervention 13 février 2018 618
16 févr. 2008 à 12:43
Les entité html ne sont pas utilise si tu choisie bien ton charset partout.

Pour le fichier excel j'en sais rien. Pour l'exportation c'est pareil, il y plusieurs mode de compatibilité SQL, par défaut NONE devrais convenir. Après tu peux tester, ça ne coûte rien.
0
En fait j'ai utilisé les entités html car je travail en partie sur une station unix qui ne supporte pas les accents, donc pour des questions de protabilités, j'ai préférés utiliser cela.

Sinon j'ai essayé d'exporter ma table en excel, mais je n'ai pas d'options permettant de changer le mode de compatibilité et mon fichier excel n'affiche pas correctement les caractères spéciaux...

Sinon, existe-t-il une commande php permettant de remplacer les caractères spéciaux par un code qui ne poserait pas de problèmes d'interprétation mais serait néanmoins correctement affiché (par exemple ´) ?

Merci.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Errata: Par exemple: & eacute;
0
s.spark Messages postés 2485 Date d'inscription vendredi 29 octobre 2004 Statut Contributeur Dernière intervention 13 février 2018 618
16 févr. 2008 à 15:56
Je ne vois pas pourquoi la station UNIX ne supporterait pas les accents, après tous les 3/4 des verseur sont sous UNIX.

Sinon voilà quelque fonctions qui pourront peut être t'être utile. je ne les affiche pas ici parce que ça sera mal interprété.


http://www.fire-soft-board.com/fsb/index.php?p=topic&p_id=90431#p90431
0
Ca y'est j'ai réussi à résoudre mon problème!!
Comme je pense que ça peut intéresser du monde, voilà comment j'ai fait:

J'ai mis tout les champs de ma table (et ma table elle-meme) en collation utf8_general_ci.
Dans mon script PHP, avant d'effectuer ma requete, jeffectue la requete suivante:
mysql_query('SET NAMES \'utf8\''); 


Et voilà!
Merci de l'aide apportée. J'espère que mon post rendra service à qqn!
0