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 :

Caractères accentués avec PHP 5.6 chez OVH


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 671
    Points : 128
    Points
    128
    Par défaut Caractères accentués avec PHP 5.6 chez OVH
    Bonjour,

    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
    echo '
    <!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>
    <meta http-equiv="content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <body>' . "\n";
     
    echo '<p>' . "echo '&eacute; &egrave; &ccedil; &agrave;'; donne :" . '</p>' . "\n";
     
    echo '<p>é è ç à</p>'. "\n";
     
    echo '<p>' . "echo htmlEntities ('&eacute; &egrave; &ccedil; &agrave;', ENT_QUOTES, 'ISO-8859-1'); donne :" . '<p>' . "\n";
     
    echo '<p>' . htmlEntities ('é è ç à', ENT_QUOTES, 'ISO-8859-1') . '</p>' . "\n";
     
    echo '<p>' . htmlEntities ('Ce ne peut pas être la fonction echo qui est en cause. La version 5.6 de PHP sur ce serveur ne gère pas les caractères accentués.', ENT_QUOTES, 'ISO-8859-1') . '</p>' . "\n";
     
    echo '</body>
    </html>';
    Voir le résultat en lligne :


    Je dis à OVH que leur version 5.6 ne gère pas les caractères accentués.

    Ils me disent que j'ai un problème de code (sans préciser), que c'est de ma faute.

    Savez-vous où est l'erreur ou une fois de plus le support OVH dit n'importe-quoi.

    Merci d'avance.

  2. #2
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Quand tu édites test.php, le fichier source avec ton script, avec notepad++, il t'affiche quel encodage ? il y a des chances que ça soit 'utf8' et que tu doives alors cliquer "Convertir en ANSI" (attention, pas encoder mais bien convertir, c'est pas du tout pareil et c'est bien trompeur). Alors tu enregistres ton fichier et tu retapes tes accents, pour qu'il soit d'emblée dans le même encodage que celui que tu annonces.
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  3. #3
    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
    PHP ne s'occupe pas des caractères accentués, il distribue ce qu'on lui donne.
    Dans ton cas, ton fichier est visiblement encodé en UTF8 alors que tu forces un contenu en ISO.
    Change l'encodage de ton fichier .php dans ton editeur.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    N'est pas plus simple de changer la charset et qu'il reste en UTF8, qui est le standard.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <meta http-equiv="content-Type" content="text/html; charset=UTF-8" />

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 671
    Points : 128
    Points
    128
    Par défaut
    Bonjour,

    Merci beaucoup de vos réponses.

    Je crois savoir qu'il n'y a pas d'alphabet par défaut en PHP 5.5
    Par contre en PHP 5.6 c'est UTF-8 par défaut.

    Je vais mettre le charset à UTF-8 et je vous tiens au courant.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 671
    Points : 128
    Points
    128
    Par défaut
    Bonjour,

    J'ai changé la balise meta et cela ne marche pas mieux :

    Voir le résultat en lligne :

    Je précise que le problème n'existe qu'en version 5.6

    En 5.5, tout marche très bien à condition simplement d'indiquer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="content-Type" content="text/html; charset=iso-8859-1" />
    Quand tu édites test.php, le fichier source avec ton script, avec notepad++, il t'affiche quel encodage ?
    Tu veux dire le fichier source html, je fais un copier-coller depuis le navigateur ?

  7. #7
    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
    Non le fichier .php
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 671
    Points : 128
    Points
    128
    Par défaut
    Bonjour,

    Citation Envoyé par sabotage Voir le message
    Non le fichier .php
    Excuse-moi mais j'utilse l'éditeur de code d'une vieille version de Dreamwaever.

    Je ne vois comment dans Dreamwaever je peut connaître l'alphabet utilisé.

    Et je ne trouve pas Notepad sur mon poste de travail.

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 671
    Points : 128
    Points
    128
    Par défaut
    Bonjour,

    Ok, j'ai chargé Notepad.

    J'ai converti le fichier en UTF-8

    Maintenant les caractères accentués passent mais c'est avec htmlentities que j'ai un problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo htmlEntities ('é è ç à', ENT_QUOTES, 'ISO-8859-1'); donne :
     
    é è ç Ã
    Je pense qu'il faudrait enlever la référence à l'alphabet ISO pour que cela marche.

  10. #10
    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
    Pourquoi tu utilises htmlentities ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 671
    Points : 128
    Points
    128
    Par défaut
    Bonjour,

    Citation Envoyé par sabotage Voir le message
    Pourquoi tu utilises htmlentities ?
    J'ai besoin de htmlentities dans plusieurs programmes, ainsi d'ailleurs que html_enttity-decode.

    Une fois converti le fchier en UTF-8, ce code fonctionne en 5.6.

    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
    echo '
    <!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>
    <meta http-equiv="content-Type" content="text/html; charset=utf-8" />
    </head>
    <body>' . "\n";
     
    echo '<p>' . "echo '&eacute; &egrave; &ccedil; &agrave;'; donne :" . '</p>' . "\n";
     
    echo '<p>é è ç à</p>'. "\n";
     
    echo '<p>' . "echo htmlEntities ('&eacute; &egrave; &ccedil; &agrave;'); donne :" . '<p>' . "\n";
     
    echo '<p>' . htmlEntities ('é è ç à', ENT_QUOTES) . '</p>' . "\n";
     
    echo '<p>' . htmlEntities ('Ce ne peut pas être la fonction echo qui est en cause. La version 5.6 de PHP sur ce serveur ne gère pas les caractères accentués.', ENT_QUOTES) . '</p>' . "\n";
     
    echo '</body>
    </html>';
    Voir le résultat en ligne

    Je pense même que la baise <meta http-equiv="content-Type" content="text/html; charset=utf-8" /> est inutile car UTF-8 est le charset par défaut de PHP 5.6.

    A noter que le programme ci-dessus ne fonctionne pas en 5.5 car la référence à un charset est obligatoire pour htmlentities ().

    Si je comprends, pour passer en 5.6 il faudrait convertir tous mes scripts en UTF-8 avec Notepad++

    C'est faisable mais gros boulot car il y a un paquet de scripts, sans oublier quelques classes PEAR sur lesquelles je n'ai pas de contrôle.

  12. #12
    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
    PHP 5.5 et 5.6 fonctionnent tous les deux en UTF8 ou en ISO.
    Si tu as des problèmes d'accents, c'est qu'un de tes éléments n'utilise pas le même encodage que les autres.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 671
    Points : 128
    Points
    128
    Par défaut
    Bonjour,

    Merci de ton suivi.

    Citation Envoyé par boteha Voir le message
    A noter que le programme ci-dessus ne fonctionne pas en 5.5 car la référence à un charset est obligatoire pour htmlentities ().
    J'ai éccrit cela et cela semble faut car le script marche aussi en 5.5.

    L'action dféterminante a été de convertir le fichier PHP en UTF-8, il était en ANSI.
    Une fois le fichier converti, si je j'ouvre, modifie et réenregistre avec mon vieux Dreamwaever cela reste en UTF-8.

    Citation Envoyé par boteha Voir le message
    Si je comprends, pour passer en 5.6 il faudrait convertir tous mes scripts en UTF-8 avec Notepad++
    Pas d'autre moyen ? Les prendre un par un sera assez galère.

  14. #14
    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
    Je t'ai déjà repondu : si tu veux rester en ISO, tu peux.
    Si tu veux passer à UTF8, tu peux.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  15. #15
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 671
    Points : 128
    Points
    128
    Par défaut
    Bonjour,

    Encore merci de ton suivi mais je ne comprends p)as :

    Citation Envoyé par sabotage Voir le message
    Je t'ai déjà repondu : si tu veux rester en ISO, tu peux.
    Si tu veux passer à UTF8, tu peux.
    Avec le codage ANSI du fichier PHP, le charset ISO ne fonctionne pas avec PHP 5.6, c'était le point de départ de la discussion.

  16. #16
    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
    Soit tu peux modifier la configuration du serveur,
    Soit tu ajoutes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('Content-Type: text/html; charset=ISO-8859-1');
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  17. #17
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 671
    Points : 128
    Points
    128
    Par défaut
    Bonjour,

    Pourquoi header et pas une balise meta ?

    Et où dois-je placer header,, pas dans le <head> ?

    Encore merci.

  18. #18
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Citation Envoyé par boteha Voir le message
    Bonjour,

    J'ai changé la balise meta et cela ne marche pas mieux :

    Voir le résultat en lligne :
    Pour ma part le lien que tu donnes fonctionne très bien, j'ai bien tout les accent affiché.

  19. #19
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 671
    Points : 128
    Points
    128
    Par défaut
    Bonjour,

    Citation Envoyé par MaitrePylos Voir le message
    Pour ma part le lien que tu donnes fonctionne très bien, j'ai bien tout les accent affiché.
    Effectivement il fonctionne bien mais après conversion du fichier PHP de ANSI à UTF-8.

    Si j'avais une solution qui ne m'oblige pas à convertir tous les fichiers PHP en UTF-8 ce serait sympa.

    Cela dit si la performance est meilleure en UTF-8 c'est un boulot que je peux faire.

  20. #20
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 671
    Points : 128
    Points
    128
    Par défaut
    Bonjour,

    Si je veux passetr en UTH-8, je dois ouvrir chaque script, le convertir avec Notepad et le ré-enregistrer.

    Pas d'autre moyen ?

    Pas moyen de faire cela au niveau d'un dossier pour tous les scripts à l'intérieur ?

Discussions similaires

  1. [Configuration] Caractères accentués avec SVN
    Par gcolmetdaage dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 11/09/2007, 11h04
  2. Caractères accentués avec <html:link>
    Par papysam dans le forum Struts 1
    Réponses: 5
    Dernier message: 25/05/2007, 16h18
  3. Les caractères accentués PG+PHP
    Par imer5 dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 11/07/2006, 10h17
  4. Problème de caractères accentués avec CAM::DBF
    Par ustilago dans le forum Modules
    Réponses: 4
    Dernier message: 23/06/2006, 09h46
  5. caractères accentués avec Tsearch2
    Par nilytel dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 25/05/2005, 12h34

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