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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Problème d'encodage des sorties php.


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 117
    Points : 67
    Points
    67
    Par défaut Problème d'encodage des sorties php.
    Bonjour,

    J'ai été amené à travailler sur un serveur geré par "plesk" sur lequel je rencontre un petit problème, je suis obligé de "utf8_decode" toute mes chaines de caracteres malgré que la page html soit déclaré en UTF-8.

    Un exemple concret :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>test</title></head><body>
    <?php 
    echo "éä", 
    "<br />", 
    utf8_decode("éä");
    ?>
    </body>
    M'affiche : Sous zendframework ou wamp en local je vois sensiblement l'inverse : la première est bien mais la deuxième est illisible.

    C'est la première fois que je rencontre un problème pareil ...
    C'est comme si toutes mes chaînes sont encodées 2 fois en utf 8

    Quelqu'un aurait une petite idée d'où ça pourrait venir ?
    Quel fichier/paramétrage/outil regarder ?


    Le serveurs est sous plesk9.3, apache 2 et php 5.2.X

    Merci d'avance !

  2. #2
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Vérifie que ton fichier soit bien encodé en UTF8 avec ton editeur de texte.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 117
    Points : 67
    Points
    67
    Par défaut
    Bonsoir,

    Merci pour la réponse rapide !
    Toutefois le fichier est bien en "UTF-8 SANS BOM" selon pspad et notepad++

    Et comme dit précédemment en local j'ai pas de problème ,sous (windows) avec wamp et zendframework Ou sous ubuntu avec apache2 & php 5.3.1

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Quelles sont les entêtes HTTP émises par ce script ? N'y aurait-il pas émission d'un charset iso au niveau du content-type ?

    Pouvez-vous également tenter de l'expliciter directement dans votre script (au tout début) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('Content-type: text/plain; charset=utf-8');
    Ce qui permettrait de l'expliciter mais aussi d'annuler tout ajout d'un encodage par défaut qui s'avérerait contraire (cet encodage par défaut pouvant être le fruit de la configuration d'Apache - AddDefaultCharset - comme de PHP - default_charset).

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 117
    Points : 67
    Points
    67
    Par défaut
    Bonsoir,

    Merci infiniment :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php header('Content-type: text/html; charset=utf-8'); ?>
    Marche à merveille !

    Je sais que je fait ma fine bouche mais j'ai quand même cherché le problème en suivant vos excellents conseils :
    default_charset est bien commenté (et en latin1 de surcroit) dans /etc/php5/apache2/php.ini

    J'ai donc regardé du côté d'AddDefaultCharset
    Et effectivement "AddDefaultCharset Off " dans un .htaccess résous bien le problème.
    Enfin bref de fil en aiguille je suis tombé sur ce post : http://forum.parallels.com/showthread.php?t=48712
    Qui devrait à priori résoudre mon problème une fois que j'aurais trouvé le fichier httpd.conf ...

    Merci encore Julp pour m'avoir mis sur la voie !

    Cordialement.

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

Discussions similaires

  1. [Encodage] Formulaire html local (sans php) problème d'encodage des caractères
    Par DubeiserTM dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 01/06/2011, 10h34
  2. [XML][Flash] Problème d'encodage des accents
    Par JoN28fr dans le forum Flash
    Réponses: 20
    Dernier message: 11/10/2006, 21h16
  3. [XML][Flash] Problème d'encodage des accents
    Par JoN28fr dans le forum XML/XSL et SOAP
    Réponses: 9
    Dernier message: 06/10/2006, 16h45
  4. Problème de visualisation des pages php
    Par dash dans le forum Langage
    Réponses: 1
    Dernier message: 05/11/2005, 13h22
  5. Réponses: 1
    Dernier message: 30/10/2005, 09h19

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