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

Langage PHP Discussion :

caractères spéciaux base MySQL [Encodage]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut caractères spéciaux base MySQL
    Bonsoir,

    j'ai un problème d'affichage des caractères spéciaux issus d'une base MySQL. Pourtant, dans mon fichier, j'ai placé cette requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sqlbase="SET NAMES 'utf8'";
    $reponsebase = $bdd->query($sqlbase);
    et sur la base, j'ai aussi exécuté cette requête : ALTER TABLE `nom_de_la_table` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin mais ça ne suffit pas ; que faudrait-il faire ?

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    tes fichiers sont bien encodés en UTF8 aussi?

    A+.

  3. #3
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Oui (sans BOM) et comme ce sont des fichiers PHP : header( 'content-type: text/html; charset=utf-8' ); et d'ailleurs, l'affichage de ces caractères dans le texte affiché par ce fichier se passe bien...

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Peut-étre une analyse pas a pas de ton probléme.
    Je veux dire que tu dois remettre a plat toute la chaine (historique de tes textes)
    Un exemple : si une table (ancienne ) contient des caractéres inconnus, tu peux te faire une configuration 100% homogéne,
    1) déclaration de ta table tel que tu l'as indiqué
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    mysql_query("ALTER TABLE `nom_de_la_table` CHARACTER SET latin1 COLLATE latin1_swedish_ci");
    ?>
    2) mais également les champs alphanum de la table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    mysql_query("ALTER TABLE `nom_de_la_table` CHANGE `un_texte` `un_texte` VARCHAR( 20 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT ''");
    ?>
    3) Coté PHP qui lira la table (dans mon exemple)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    header('Content-type: text/html; charset=ISO-8859-1');
    ?>
    4) coté SQL (par exemple en PDO)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    $bdd->exec("SET CHARACTER SET latin1");
    ?>
    5) et la page html envoyée au visiteur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
    Malgrés cet exés de zéle l'ancien contenu sera toujours érroné.

    Il te faut en effet sur les anciennes tables (au plus simple exporter en fichier texte corriger et réimporter)
    Mais bien sur tu peux si tu en connais l'encodage réencoder par fonction

    Une excelente page ici
    http://www.aquatz.com/Encodage-conve...MySQL_a36.html

  5. #5
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Christèle, avant d'appliquer tes conseils (même si je serai plus rapide en appliquant le point n°2 en le codant plutôt qu'en le faisant manuellement), je voudrais lever un doute : tu mets partout de l'ISO-8859-1 (ou du latin1_swedish_ci ce qui doit être à peu près la même chose) et jamais de l'utf-8 (contrairement à la page dont tu fournis le lien) : c'est normal ?

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    Christèle, avant d'appliquer tes conseils (même si je serai plus rapide en appliquant le point n°2 en le codant plutôt qu'en le faisant manuellement), je voudrais lever un doute : tu mets partout de l'ISO-8859-1 (ou du latin1_swedish_ci ce qui doit être à peu près la même chose) et jamais de l'utf-8 (contrairement à la page dont tu fournis le lien) : c'est normal ?
    Oui j'ais repris un de mes "topo" avant d'adopter (depuis l'euro ) utf8
    Mais tu transposera facilement

    NOTA par contre le lien de mon message au dessus n'est pas a moi, mais
    il est super bien et je le recommande toujours.
    Mon site est dans mon profil
    http://www.fox-infographie.com

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

Discussions similaires

  1. [1.x] Caractères spéciaux sous mysql
    Par tsumiko dans le forum Symfony
    Réponses: 3
    Dernier message: 16/01/2011, 12h13
  2. [MySQL] Caractères spéciaux et mysql
    Par PIEPLU dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 13/01/2010, 10h44
  3. Remplacer caractères spéciaux insertion mysql
    Par maxeur dans le forum Ruby on Rails
    Réponses: 1
    Dernier message: 19/05/2009, 09h57
  4. Réponses: 8
    Dernier message: 11/07/2006, 14h34

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