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 :

Problème d'encodage avec utf8_general_ci


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2002
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2002
    Messages : 127
    Par défaut Problème d'encodage avec utf8_general_ci
    Bonjour,
    J'ai un problème assez étrange d'encodage avec mes accents. Ceux ci sont en effets codés incorrectement dans la base de données (exemple : é en é) mais au rendu ils apparaissent correctement. Ce ne serait pas trop un problème si je n'avais besoin d'effectuer des recherches, je veux qu'un WHERE champ LIKE "%début%" retourne les memes résultats que WHERE champ LIKE "%debut%" (avec et sans accents) ce qui n'est pas le cas actuellement (ce sont 2 mots différents).

    j'ai donc fait ceci :
    - j'ai créé une table de test appelé "table" avec un unique champ texte (mediumtext, utf8_general_ci)
    - j'ai créé un fichier test.php encodé en utf8 qui insert "é" dans table
    - j'ai créé un fichier test.php encodé en iso-8859-1 qui insert "é" dans table

    j'obtiens alors
    - lors de l'encodage du é en utf-8, la base de donné contient é
    - lors de l'encodage du é en iso-8859-1, la base de donné contient é

    ce qui n'est pas normal il me semble

    note : pour visionner la base de donnée j'utilise phpmyadmin avec choix de l'encodage en utf-8

    je voudrais donc savoir si j'ai raté quelque chose peut etre ?

  2. #2
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Février 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2009
    Messages : 46
    Par défaut
    Bonjour

    Est ce que tu défini utf-8 à la connexion vers mysql en PHP ?

    Genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    mysql_connect($CFG['sql_host'],$CFG['sql_user'],$CFG['sql_password']) or die ('Erreur de connexion MySQL.');
    mysql_select_db($CFG['sql_bdd']) or die ('Erreur de sélection BDD.');
     
    mysql_query("SET NAMES 'utf8'");
    mysql_set_charset('utf8');
    Là t'es sur que tout fonctionne en utf-8.

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2002
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2002
    Messages : 127
    Par défaut
    salut,
    lorsque je rajoute la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mysql_set_charset('utf8');
    les saisies sont correctes, cependant leur affichage dans mes pages php est incorrect (? a la place des accents)
    ce qui est bizarre au vu du code html de mes pages qui commence ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

  4. #4
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Février 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2009
    Messages : 46
    Par défaut
    Salut

    Au chargement de la page, est que tu envoi des entête utf-8 ?

    Je sais pas si c'est obligatoire pour fonctionner en utf8, mais j'ai pris l'habitude de le faire.

    Avant tout code sorti HTML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    header('Content-Type: text/html; charset=utf-8');
    ?>
    Sky

Discussions similaires

  1. [MySQL] Problème d'encodage avec %
    Par jop217 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 28/03/2007, 15h43
  2. Réponses: 4
    Dernier message: 02/03/2007, 22h33
  3. Problème d'encodage avec MyODBC
    Par stack dans le forum Access
    Réponses: 2
    Dernier message: 17/10/2006, 12h11
  4. [Mail] Problème d'encodage avec phpmailer
    Par catmary dans le forum Langage
    Réponses: 8
    Dernier message: 29/06/2006, 10h56
  5. Problème d'encodage avec Python
    Par tse_tilky_moje_imja dans le forum Général Python
    Réponses: 2
    Dernier message: 22/02/2006, 14h36

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