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 :

Problème d'accent et de losange [PHP 5.0]


Sujet :

Langage PHP

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 102
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 102
    Points : 953
    Points
    953
    Par défaut Problème d'accent et de losange
    Bonjour à tous,

    Je fais face a un truc de fou!!!
    Je ne sais pas si j'aurais du mettre ce post dans la rubrique HTML, mais il y a aussi un lien avec PHP en utilisant le include()(voir en bas):
    J'ai fait une page test dans lequel je commence par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    <title>Gestion des saisons</title>
    <?php
    	include($root.'include/head.inc.php');
    ?>
    ...
    Dans head j'ai aussi mes code css et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <meta charset=utf-8 />
    Puis j'ai du javascript et enfain je ferme le </head> et j'ouvre body en y insérant du code HTML5.

    Dans ma page test, l é (dans le code de ma page) me retourne é.
    Donc tout bon j'usqu'a la.

    Une fois terminé, j'ai copié ce code dans ma page en prod (qui n'est guère bien différente.

    J'ai contrôle 10 fois que le debut de ma page est le même: donc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    <title>Gestion des saisons</title>
    <?php
    	include($root.'include/head.inc.php');
    ?>
    Je n'arrive pas comprendre pourquoi dans ma page en prod, elle me retourne un caractere spéciale en forme de losange.

    Le plus drôle c'est quand je met un é dans un module que j'importe avec la fonction include(), le é est correctement affiché.

    Donc dans ma page j'ai des é et des losanges....

    Avez vous une idée pourquoi le include affiche un é correctement?

  2. #2
    Membre habitué
    Inscrit en
    Juillet 2009
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 156
    Points : 160
    Points
    160
    Par défaut
    Est tu sur de l'encodage de tes fichiers a la création dans ton éditeur???

  3. #3
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 102
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 102
    Points : 953
    Points
    953
    Par défaut
    Salut, que veux tu dire par là?
    J'utilise Dreamviewer pour la création des deux pages, celle de test ou tout marche, et celle en "prod". Mon encodage est le même pour les deux pages.
    Bon il y a forcément un truc de faux, mais j'ai passé 1h30 heures a comparer...

  4. #4
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 102
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 102
    Points : 953
    Points
    953
    Par défaut
    Ici le é (après <div id="general">) n s'afiche sous form de losange
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    <?php
    $root = "";
    include_once($root.'include/includes.php');
    ?>
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <title>Season</title>
    <?php
    	include($root.'include/head.inc.php');
    ?>
    </head>
    <body>
    <header>
      <section role="banner">
        <figure> <img  class="logo" src="img/logo_hello_web.jpg" alt="e-Booking Hello Web"  /> </figure>
      </section>
      <section role="navigation">
        <nav>
          <?php
    	include($root.'include/menu.inc.php');
    ?>
        </nav>
      </section>
    </header>
    <div id="general">é
      <section id="left">
        <section class="sm-calendar">
    et dans cette page, le même é s'affiche normalement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    <?php
    $root = "";
    include_once($root.'include/includes.php');
    ?>
    <!DOCTYPE html>
    <html lang="en" >
    <head>
    <title>eBook</title>
    <?php
    	include($root."include/head.inc.php");
    ?>
    </head>
    <body>
    <header>
      <section role="banner">
        <figure> <img  class="logo" src="img/logo_hello_web.jpg" alt="e-Booking Hello Web"  /> </figure>
      </section>
      <section role="navigation">
        <nav>
          <?php
    	include($root.'include/menu.inc.php');
    ?>
        </nav>
      </section>
    </header>
    <div id="general">é
      <section id="left">
        <section class="sm-calendar">
    Voyez-vous une différence???

  5. #5
    Membre expérimenté
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Points : 1 664
    Points
    1 664
    Par défaut Encodage
    Bonjour,

    Et même en respectant le codage HTML des caractères spéciaux, obtiens-tu toujours un souci d'encodage? Je m'explique: une "é" en HTML s'écrit "&eacute;". En principe, de cette façon (fa&ccedil;on), il ne devrait pas y avoir de problème, il s'agit de l'écrire ... proprement.
    Je sais que c'est une solution qui n'est pas assez plaisante mais ... efficace, je pense.
    Bien cordialement,

  6. #6
    Invité
    Invité(e)
    Par défaut
    Pour commencer, il est mieux de formater la balise meta ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    et de la placer le plus tôt possible dans le <head>

    Cette balise permet d'indiquer que ton document utilise l'encodage de carctères UTF-8.
    Concrètement, cela permet d'insérer des caractères "bruts" (é, à, €, д, etc) au lieu d'utiliser leurs entités équivalentes (&eacute; , &agrave;, etc.)

    Ton problème, c'est que tu annonces que tu utilises de l'UTF-8 mais qu'en réalité, ton document .php est enregistré sous un format ISO (probablement ISO 8859-1 ou ISO 8859-15).

    Utilises Dreamweaver ou un éditeur de texte pour spécifier l'encodage de caractères (charset) du document et passe-le en UTF-8.

    Edit :
    Citation Envoyé par Mahefasoa Voir le message
    Je sais que c'est une solution qui n'est pas assez plaisante mais ... efficace, je pense.
    Bien cordialement,
    Je ne suis pas d'accord, l'utilisation des entités permet de dépanner, mais n'est pas une solution à employer à long terme.

  7. #7
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 102
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 102
    Points : 953
    Points
    953
    Par défaut
    ok j'ai trouvé!!

    Mais juste avant. On est bien d'accord qu'avec utf-8, je n'ai pas besoin d'écrire la version html? le é, dans la code de la page passe très bien?

    Ok voilà la raison qui est un epu dingo...

    Sous DM, j'ai regardé les propriété de ma page et je suis allé voir sous title/encoding.
    La j'ai vu qu'il avait gardé "central europe iso" un truc du genre, alors que j'avais bien ceci dans ma page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <meta charset=utf-8 />
    <!--<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />-->
    Etonnant. J'ai donc changé en "unicode 5.1 utf-8" et depuis ca marche. Il ma' aussi ajouté ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    que j'ai supprimé car j'ai deja ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <meta charset=utf-8 />
    Dans mon "module" include('include/head.inc.php')

    Et ca marche comme il faut. J'aime pas trop ce genre de binz car c'était finallement lié à mon éditeur et non pas à mon code

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par pierrot10 Voir le message
    Mais juste avant. On est bien d'accord qu'avec utf-8, je n'ai pas besoin d'écrire la version html? le é, dans la code de la page passe très bien?
    Oui c'est le but de l'UTF-8

    Il faut juste garder à l'esprit :

    Penser à rester cohérent :
    • au niveau serveur (qui peut forcer l'utilisation d'un encodage)
    • au niveau de la déclaration du type d'encodage des documents
    • au niveau de l'encodage réel des documents


    Merci de passer le sujet en résolu c'est c'est bien le cas.

  9. #9
    Membre habitué
    Inscrit en
    Juillet 2009
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 156
    Points : 160
    Points
    160
    Par défaut
    quand tu prends l'habitude de bosser sur du multilangue, les entities deviennent très rare... personnellement je ne les utilises que pour les newsletter (les messagerie ne gère pas les entêtes de mails)

    Sinon garde le tag de dreamweaver
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    Il t'évitera des problème de compatibilité sur les différents os/navigateur étranger

  10. #10
    Membre habitué
    Inscrit en
    Juillet 2009
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 156
    Points : 160
    Points
    160
    Par défaut
    les éditeurs par défaut en europe sont en iso, c'est a toi de le configurer pour le passer en UTF-8 par défaut si tu utilise ce codage... l'utf-8 n'est pas réellement "la norme" (bien qu'il n'y en ai pas vraiment) d'ou le fait que tu soit en iso par défaut

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

Discussions similaires

  1. petit problème d'accent
    Par No_SenS dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 11/04/2005, 14h10
  2. Problèmes d'accent avec une connexion ODBC et ADO
    Par michael.jacques dans le forum Bases de données
    Réponses: 3
    Dernier message: 10/03/2005, 16h36
  3. Réponses: 3
    Dernier message: 25/02/2005, 21h46
  4. [XSLT] application d une xslt et problème d'accents
    Par lanfeust23 dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 26/07/2004, 14h08
  5. Problème avec accents et CHARACTER SET ISO8859_1
    Par kinda dans le forum InterBase
    Réponses: 13
    Dernier message: 30/10/2003, 16h49

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