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 :

[UTF-8] Pourquoi utiliser utf8_encode() alors que la page web et la DB sont en utf8 ?


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Par défaut [UTF-8] Pourquoi utiliser utf8_encode() alors que la page web et la DB sont en utf8 ?
    Bonjour,

    pensant bien faire, j'ai créé une table classique en utf8 :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE TABLE `bien` (
      `id` MEDIUMINT unsigned NOT NULL auto_increment,
      `titre` VARCHAR(50) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci AUTO_INCREMENT=1;

    Pourquoi dans une page XHTML utf8, je suis obligé d'utiliser utf8_encode() pour afficher correctement le texte contenu dans cette table ?
    Je pensais que le faite d'enregistrer les data en utf8 cela m'éviterai de devoir de encoder... nan ?
    Quelqu'un pourrait-il m'éclairer SVP ?
    Merci d'avance

    @bientôt

  2. #2
    Membre émérite Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Par défaut
    Cela devrait fonctionner.
    Que met tu dans la page XHTML pour qu'elle comprenne le UTF-8

    Perso j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html xml:lang="zh-CN" lang="zh-CN" .....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    le tout avec un DOCTYPE en XHTML 1.0 strict. (zh-CN c'est parce que j'affiche du chnois mais avec le Locale francais cela devrait etre bon aussi)

  3. #3
    Membre chevronné Avatar de Asmodean
    Profil pro
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Par défaut
    Est ce que les pages php qui enregistre des données dans ta base sont bien encodé en utf8 aussi? Ca m'arrive souvent ce genre de problème...

  4. #4
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Par défaut
    Voici mon header stunti :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <!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">
    <head>
    <title>Mon titre</title>
     
    <meta http-equiv="Content-Type" content="text/HTML; charset=utf-8" />
    la page est bien encodée en utf-8... ne me dit pas que c'est à cause de mon charset=utf-8" en minuscule !


    Asmodean, à vrai dire y a pas encore d'insertion via php...
    ma base et le contenu ont été créé via un copier/coller du contenu d'un *.sql en utf8...

  5. #5
    Membre chevronné Avatar de Asmodean
    Profil pro
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Par défaut
    Et la page php qui lit les données à quelle encodage?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 119
    Par défaut
    J'ai eu ce problème: tout en utf-8: les scripts php, la base, la déclaration xhtml... et je recevais les données de ma base en iso...
    Je crois que c'est au niveau des serveurs que ça se converti, ne me demande pas...
    perso, j'ai trouvé ça, à mettre sous la requête de connexion sql:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query('SET NAMES utf8') ;
    Chez moi ça fonctionne parfaitement, et tu ne devras pas tout utf8-encoder

Discussions similaires

  1. page qui existe alors que var_dump($page) : length=0
    Par laurentSc dans le forum Langage
    Réponses: 4
    Dernier message: 24/12/2014, 03h49
  2. Pourquoi utiliser Iterator alors qu'on a foreach ?
    Par beegees dans le forum Langage
    Réponses: 4
    Dernier message: 06/03/2014, 17h31
  3. code 500 retourné alors que la page s'affiche normalement
    Par johnny-57 dans le forum Serveurs (Apache, IIS,...)
    Réponses: 6
    Dernier message: 06/09/2013, 15h13
  4. File_get_content timeout alors que la page existe
    Par loup-rouge dans le forum Langage
    Réponses: 14
    Dernier message: 06/11/2008, 22h09
  5. Réponses: 2
    Dernier message: 19/04/2007, 16h57

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