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 :

Probleme de charset


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 11
    Par défaut Probleme de charset
    Bonsoir,

    J'ai un soucis avec les accents dans mes pages. Je suis en iso-8859-15 (tous le site est comme ça ainsi que mysql).

    J'utilise aussi smarty et htmlentities (ou htmlspecialchars)
    Apache est paramétré en iso-8859-15,
    Le header php aussi et celui de la page xhtml

    (donc à ma connaissance, rien n'est en utf8)

    J'assigne du texte à Smarty mais ceux ci sont apparement en utf8.
    Ma phrase

    $Smarty->assign('erreur',htmlentities("Une des deux équipes doit être"));

    "Une des deux équipes doit être..." sort en

    "Une des deux & A t i l d e ;& c o p y ;quipes doit & A t i l d e ; & o r d f ; tre"

    J'ai mis des espaces pour bien vous les montrer.


    Quelqu'un aurait une réponse ?
    Il est tard, je viens de passer 1 heure dessus.

    D'avance merci

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 11
    Par défaut
    Je viens de remarquer que certaines pages fonctionne parfaitement avec le meme script...

    J'utilise pour le coups dreamweaver..

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 11
    Par défaut
    Je n'arrive pas à lacher l'affaire.

    quand je fais dans mon fichier principal:

    <?php
    ...
    $Smarty->assign('tplInvalide', htmlspecialchars("L'équipe...");
    ...
    ?>

    Ca marche. Mais quand je mets ça dans un fichier appellé par include c'est mort...

    je suis vert. Est-il simple de migrer tous le site en utf8, surtout mysql?

    l'utf8 est plus pratique, non ?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Bonjour,

    Tu fais une confusion.
    Que tu sois en iso-8859-15 ou en UTF8 le fonctionnement est le même : tu écris les caractères spéciaux directement dans ton document.

    htmlentities transforme les caractères spéciaux en entités html comme & A t i l d e ;

    mais je comprends mal ton problème : tu veux dire que quand tu "include" le fichier tu vois les entités html dans l'affichage de la page ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 11
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Bonjour,

    Tu fais une confusion.
    Que tu sois en iso-8859-15 ou en UTF8 le fonctionnement est le même : tu écris les caractères spéciaux directement dans ton document.
    Je t'assure que je ne fais pas de confusion. Simplement au début je codais directement les codes spéciaux dans mon code par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "les & e a c u t e ; quipes doit & e c i r c ; tre"
    mais je trouvais que c'était plus simple d'écrire mes réponses normalement et ensuite d'utiliser htmlentities pour les mettre au format html.

    Quand je parle d'Include, c'est très simple en fait. Imagine en gros 2 cas de figure :

    1. index.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    // j'encode en iso-8859-15 via header et les balises metas
    echo htmlentities("Les équipes doivent être...");
    ?>
    affiche
    Les équipes doivent être... -> OK


    1. 2 pages php: index.php - script.php

    Dans index.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
    // j'encode en iso-8859-15 via header et les balises metas
    include ("mon/path/to/script.php");
    ?>
    dans script.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    echo htmlentities("Les équipes doivent être...");
    ?>
    affiche
    Les & A t i l d e ;& c o p y ;quipes doit & A t i l d e ; & o r d f ; tre

    si je fais par contre un utf8_decode() c'est OK ...


    Par contre, j'ai d'autres scripts, autre que script.php avec le même genre d'instruction et ça marche nickel. J'ai pensé à vérifier si le fichier script.php était enregistré en utf-8 mais non donc je reste sans réponse.


    Sur ma lancée d'hier, j'ai tous convertis en utf-8 (mysql y compris) et la ... c'est abusé c'est le même probleme.

    A noté que pour l'instant, je n'ai pas acces au ftp donc j'ai installé wamp..., et dans php ini, j'ai bien mis les bons charsets .

    Bref, je suis dég. N'hésitez pas à me poser des questions si ce que j'ai décris vous semble flou.
    Merci sabotage

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 11
    Par défaut
    Bon la nuit porte conseil
    ca marche avec

    htmlentities("Une des deux équipes doit être",ENT_QUOTES,"utf-8")

    Pourtant, je ne devrais pas spécifier l'encodage ici ...

    Une idée ?

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

Discussions similaires

  1. probleme de charset sur JSP multilangue
    Par pcouas dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 20/11/2008, 22h56
  2. probleme de charset
    Par beber* dans le forum Servlets/JSP
    Réponses: 24
    Dernier message: 07/07/2008, 09h14
  3. [UTF8] probleme de charset
    Par max44410 dans le forum Langage
    Réponses: 1
    Dernier message: 03/12/2007, 10h13
  4. probleme de charset
    Par loig.noblet dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 08/03/2007, 13h12
  5. [MySQL] Problème de charset avant l'envoi dans la BDD
    Par Death83 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 29/08/2006, 18h51

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