IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration MySQL Discussion :

Changement de version de MySQL et encodage des informations


Sujet :

Administration MySQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 141
    Points : 92
    Points
    92
    Par défaut Changement de version de MySQL et encodage des informations
    Bonjour à tous,

    je ne sais pas si ma question va se trouver dans la bonne rubrique du forum, veuillez m'en excuser si c'est pas le cas.

    Mon prestataire d'hébergement et moi-même sommes devant un soucis très bizarre.

    Je suis actuellement une version de mysql 5.0.51a
    Nous sommes en train de migrer vers un nouveau serveur avec un mysql 5.5.37

    La totalité des BDD ainsi que leur contenu a été copié à l'identique de la plus ancienne version vers la plus récente (y compris les collations, tout est parfaitement identique).

    Or je rencontre le soucis suivant : tout le contenu accentué se trouvant en BDD est recraché de manière encodé sur mes sites (sur le nouveau serveur), alors que ça ne l'est pas du tout sur le serveur de base.
    Exemple : j'ai en base le prénom "sébastien", il s'affiche sur un des site en "sébastien"
    Sur un des site j'ai pu contourner le soucis en rajoutant un mysql_query("SET NAMES latin1"); en début de code (alors que le champ est bien en latin1 dans la BDD).
    Sur un autre site le SET NAMES ne fonctionne pas et je suis obligé de rajouté un utf8_decode sur mon résultat pour l'afficher correctement.

    Alors précision, les 2 sites contiennent un meta en iso8859-1, il n'y a pas d'htaccess qui pourrait mettre du bazar.
    L'unique chose qui est différente c'est la version de mysql (et celle de php évidemment, mais je ne pense pas que la version de php y soit pour quelque chose ?)

    Bref, je suis un peu devant une impasse car je parle de 2 sites mais j'en ai des dizaines à vérifier et certains très sensibles.
    J'attends de trouver une solution viable avant de faire la bascule finale.

    Donc, si vous avez des idées sur le pourquoi du comment de cet encodage "clandestin" je suis preneur !

    D'avance merci

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 79
    Points : 170
    Points
    170
    Par défaut
    Salut,

    C'est probablement la configuration du client MySQL qui a changé sur le serveur. Qqchose genre avant le character-set-client était à latin1, puis il est passé à 'utf8' avec la mise à jour.
    Du coup, la réponse de tes requêtes est encodé en UTF-8, or tu forces la page en ISO, ce qui donne ces caractères bizarres.

    Si tu as accès à la conf MySQL du serveur, tu peux tenter d'ajouter ces lignes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [client]
    default-character-set=latin1
    Tu devrais retrouver le comportement d'avant.

    Sinon, comme pour le SET NAMES, fait un SET CHARSET 'latin1'. Ca signifie que tu veux avoir le résultat des requêtes en latin1 (le SET NAMES indique que ce que tu envoies est encodé en latin1, mais ne change pas l'encodage de ce que tu reçois).
    Ceci dit attention, si ton site tourne comme ca depuis un moment, je t'invite à regarder le contenu de tes tables: il y a des chances que les derniers enregistrements aient été fait en UTF-8.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 141
    Points : 92
    Points
    92
    Par défaut
    Mon prestataire a fini par trouver la solution, certains paramètres de la nouvelle version étaient directement notés sur un renvoi des infos en utf8.
    Il a reconfiguré tout cela.

    Merci de l'aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Encodage des caractères dans MySql
    Par barbug dans le forum Requêtes
    Réponses: 2
    Dernier message: 16/04/2009, 10h46
  2. problème java-mysql encodage des caracteres
    Par mrdindo dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 14/06/2008, 14h13
  3. mon casse-tête des versions php-Mysql
    Par marcel marie dans le forum Langage
    Réponses: 4
    Dernier message: 03/09/2007, 08h10
  4. Encodage des bases MySQL
    Par Rakken dans le forum Outils
    Réponses: 3
    Dernier message: 27/11/2006, 09h08
  5. [mysql]encodage des caractères
    Par ideal23 dans le forum Requêtes
    Réponses: 4
    Dernier message: 27/10/2006, 13h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo