Rechercher : dans
Par :

MySQL et les collations

Dernière réponse le 16 fév 2008 à 19:20:16 Nonos, le 16 fév 2008 à 11:32:06 
 Signaler ce message aux modérateurs

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!

Meilleures réponses pour « MySQL et les collations » dans :
[MySQL] Illegal mix of collations (latin1_swedish_ci,IMPLICIT) Voir Sous phpMyAdmin vous obtenez l'erreur suivante : MySQL a répondu:Documentation #1267 - Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '=' Ceci est dû à l'ajout des "collations" sous MySQL...
Installation rapide de LAMP (Apache+MySql+php) sous Linux VoirLAMP = Linux+Apache+MySql+Php. C'est le serveur web par excellence. L'ensemble est facile à installer. Installation rapide sudo aptitude install apache2 php5 mysql-server php5-mysql libapache2-mod-php5 Le mot de passe administrateur mySQL...
Réinitialiser le mot de passe root de MySQL VoirQue ce soit lors de la première installation ou après la perte du mot de passe principal de MySQL, il est nécessaire de pouvoir modifier le mot de passe administrateur (root) de MySQL. Vous avez perdu le mot de passe root de MySQL ? Pour pouvoir...
Importer et exporter des données sous MySQL VoirImportation et exportation Les Système de Gestion de Bases de Données tels que MySQL permettent de manipuler facilement et avec beaucoup de souplesse un très important volume de données. Toutefois, aussi robuste soit MySQL, il peut être intéressant...
MySQL - Installation sous Windows VoirPrésentation de MySQL MySQL est un Système de Gestion de Bases de Données (SGBD) fonctionnant sous Linux et Windows. Depuis la version 3.23.19, MySQL est sous Licence GPL (aussi bien sous Linux que Windows), ce qui signifie qu'il peut être utilisé...
Administration de MySQL VoirLa base de données mysql Les Système de Gestion de Bases de Données tels que MySQL permettent de manipuler facilement et avec beaucoup de souplesse un très important volume de données. Toutefois, aussi robuste soit MySQL, il peut être intéressant...

1

s.spark, le 16 fév 2008 à 11:44:54

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 ???

Répondre à s.spark

2

Nonos, le 16 fév 2008 à 11:49:40

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

Répondre à Nonos

3

s.spark, le 16 fév 2008 à 12:43:33

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.

Répondre à s.spark

4

Nonos, le 16 fév 2008 à 14:11:40

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.

Répondre à Nonos

5

Nonos, le 16 fév 2008 à 14:14:45

Errata: Par exemple: & eacute;

Répondre à Nonos

6

s.spark, le 16 fév 2008 à 15:56:29

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

Répondre à s.spark

7

 Nonos, le 16 fév 2008 à 19:20:16

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!

Répondre à Nonos