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

PHP & Base de données Discussion :

Affichage encodage utf-8


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 60
    Points : 47
    Points
    47
    Par défaut Affichage encodage utf-8
    Bonjour

    J'ai une question sur l'unicode pour le bon affichage des accents. Je viens de lire cette faq mais ça m'amène plus de questions que de réponses.

    http://php.developpez.com/faq/?page=mysql#mysql-utf-8

    J'ai créé un script en php/xhtml sous notepad++ encodé en utf-8 (sans dom) avec le bon charset en en-tête (charset=UTF-8), ma base de donnée est en utf8-general-ci. Le script php se contente de lire des données issues de cette base. Malheureusement, les accents n'apparaissent pas correctement.

    Je pense que le problème vient de l'encodage des données qui sont envoyées dans la base....le souci est que les données de la base de données sont issues d'un autre script php pur (sans code xhtml) qui récupère des données sur un site codé en ISO 8859-1 !

    D'après la faq, il faut envoyer les données en utf8 avec la commande
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mysql_query("SET NAMES 'utf8'");

    Que se passe t'il quand on envoit des données ascii dans une table utf8 !? Il ne fait vraiment pas la conversion automatiquement ?

    En admettant que j'utilise cette option pour les envoyer en format utf-8...comment puis je faire pour les vieilles données qui sont dans la base utf-8 depuis des mois voir des années qui ont été envoyées au format ascii sur 1 seul octet !?

    Bonne semaine

  2. #2
    Membre confirmé Avatar de rikemSen
    Homme Profil pro
    Analyste Développeur Web - Fizzup.com
    Inscrit en
    Décembre 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste Développeur Web - Fizzup.com
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 387
    Points : 540
    Points
    540
    Par défaut
    Je n'ai pas de réponse à tes questions mais une proposition à tester:

    Essayer lors de l'ajout dans la base de données des valeurs que tu as récupéré du site en ISO-8859-1 de passer tout ça dans utf8_encode($val);

    et lors de la récupération, test de les afficher tel quel et au cas ou, en utf8_decode($val).

    Cordialement, Guillaume.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 60
    Points : 47
    Points
    47
    Par défaut
    Finalement le

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("SET NAMES 'utf8'");
    marche très bien pour tout, j'ai pu tester une fois chez moi.

    Ils préconisent plutôt mysql_set_charset

    http://php.net/manual/en/function.mysql-set-charset.php

    comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $link1 = mysql_connect('localhost','user1','pass1',TRUE);
    $link2 = mysql_connect('localhost','user1','pass1',TRUE);
     
    mysql_selectdb('db1',$link1);
    mysql_selectdb('db2',$link2);
     
    mysql_set_charset('latin1',$link1);
    mysql_set_charset('utf8',$link2);
    ?>

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

Discussions similaires

  1. Problème d'affichage avec encodage utf-8
    Par t-die dans le forum Zend
    Réponses: 3
    Dernier message: 04/12/2006, 14h55
  2. affichage encodage du mois en court
    Par dunbar dans le forum Requêtes
    Réponses: 5
    Dernier message: 18/08/2006, 22h36
  3. [Dates] affichage encodage du mois en court
    Par dunbar dans le forum Langage
    Réponses: 1
    Dernier message: 17/08/2006, 12h51
  4. Pb Encodage UTF-8 pour Ooo
    Par Sylvain James dans le forum XMLRAD
    Réponses: 10
    Dernier message: 08/03/2006, 22h28
  5. [WebForms] Encodage, UTF-8 et accents
    Par alexischmit dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 28/04/2004, 12h21

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