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

Apache Discussion :

Problème de Charset UTF-8


Sujet :

Apache

  1. #1
    Membre confirmé Avatar de Lost In Translation
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 166
    Par défaut Problème de Charset UTF-8
    Bonjour à tous,

    Je poste mon problème dans la section serveur apache, car je suppose que l'erreur ne vient ni du php, du html, ni du mysql. (Mais je peux me tromper).

    J'expose donc mon problème :

    - Mes pages html utilisent le charset UTF-8
    - Ma base de données utilise l'interclassement UTF8_unicode_ci
    - Les champs de ma BDD idem
    - Mes fichiers sont enregistrés en utf8 (sous linux avec Quanta)

    Les données extraites de la base de données sont bonnes (présence des accents). Les données écrites en dur dans mon HTML quand à elles ne sont pas correctement encodées (caractères bizarre).

    Voici la source d'erreur : http://www.les-bons-cotes-de-marseille.fr

    Vous voyez le mot "Flâner", il est extrait de la BDD et est écrit correctement.
    Par contre, en fond gris, "Les bons côtés de marseille" est carrément anarchique (données en dur dans le code HTML)

    De plus aucun navigateur (que ce soit le mien, ou ceux des autres personnes) ne détecte la page comme de l'UTF8. Si votre navigateur est en détection automatique, aller dans affichage/encodage... et je suis sur qu'il vous dira qu'il lit la page en iso

    Le validateur w3c me dit
    The character encoding specified in the HTTP header (iso-8859-15) is different from the value in the <meta> element (utf-8). I will use the value from the HTTP header (iso-8859-15) for this validation.
    Donc en gros : "ton header, c'est de l'iso, mais tu dis utiliser de l'UTF8". Et c'est bien la première fois que cette chose m'arrive.

    Donc ma question : est-il possible que le serveur web (celui de mon prestataire) ait un soucis dans sa configuration ? C'est du Apache2, sous php5 et mysql5.

    Je n'ai jamais eu de problème ni en local, ni chez mon ancien hébergeur.
    Mais peut être dans ma migration ai-je fais une erreur.

    A votre avis ?

    Merci à tous et bonne journée.

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Citation Envoyé par Lost In Translation Voir le message
    Vous voyez le mot "Flâner", il est extrait de la BDD et est écrit correctement.
    Par contre, en fond gris, "Les bons côtés de marseille" est carrément anarchique (données en dur dans le code HTML)
    Ca c'est pas normal : si tout était OK côté base de données, tu devrais avoir "flâner" écrit comme "côtés" l'est, c'est-à-dire avec des caractères bizarres, du genre "flŽ©ner". Donc déjà, tu ne récupères pas les données de la base en UTF-8. C'est le premier problème.

    Pour l'autodétection du jeu de caractères qui ne marche pas, ça pourrait être lié au premier problème, car ta page contient des caractères UTF-8 et ISO-8859-15. Mais tu peux forcer quand même l'encodage renvoyé par le serveur à utf-8. Pour cela, mets ceci dans un fichier .htaccess se trouvant à la racine de ton site :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AddDefaultCharset utf-8
    Fais d'abord cette modification pour travailler sur le premier problème. Ensuite, quand le premier problème est résolu, essaie de supprimer le .htaccess et vois ce que ça donne : si ça se trouve, si tout est correctement en utf-8 dans ta page, le navigateur tiendra compte du <meta http-equiv="Content-Type">.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 52
    Par défaut
    Salut.
    A mon avis, soit tes pages sont mal encodées (si tu utilises notepad++, fait format > convertir en utf8 sans bom), soit il faut rajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("SET NAMES UTF8");
    dans ton script php (je l'ai mis après la connexion à la bdd).

    Chez moi ça fonctionne bien.

    ++

  4. #4
    Membre confirmé Avatar de Lost In Translation
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 166
    Par défaut
    @ debido67

    A mon avis, soit tes pages sont mal encodées (si tu utilises notepad++, fait format > convertir en utf8 sans bom), soit il faut rajouter
    Non, j'utilise quanta sous Debian et j'ai bien vérifié que mes fichiers sont bien enregistrés en utf8

    Quand au SET NAMES, je l'avais mis, mais c'est l'enlevant que mes accents de la BDD sont redevenus normaux. Quand je le mets, il me crache des caractères bizaroides à la place des accents

    Avant j'avais ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $this->query("SET CHARACTER SET utf8");
     
        $this->query("SET NAMES utf8");
    @_Mac_

    Le htaccess vient de régler le soucis.

    Je vais essayer de trouver le problème... mais je ne vois pas.
    J'ai vérifié mes templates, mes parseurs, mêmes mes CSS... tous enregistrés en uft-8, tous avec le bon encodage dans le header.

    C'est certain qu'il doit y en avoir un qui génère une erreur, mais lequel

Discussions similaires

  1. charset UTF-8 problème
    Par GiggZCQA dans le forum Administration
    Réponses: 2
    Dernier message: 12/10/2011, 22h18
  2. Problème charset UTF 8
    Par einboubou dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 14/06/2009, 23h00
  3. Bonjour, JSP avec Charset UTF-8 Problème
    Par chakcc dans le forum Langage
    Réponses: 1
    Dernier message: 03/01/2007, 11h45
  4. problème d'encoding UTF-8 via la SDK MSXML
    Par ep31 dans le forum MFC
    Réponses: 6
    Dernier message: 26/01/2006, 09h46
  5. Problème de charset
    Par Yodalf dans le forum Langage
    Réponses: 3
    Dernier message: 21/10/2004, 09h29

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