Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problèmes avec accents suite à migration PHP 5.6

Sujet résolu
    31 mars 2015 à 11:32:33

    Bonjour,

    OVH m'a forcé à migrer sur une version récente de PHP, PHP 5.6, en mettant à la racine du site ce fichier .ovhconfig :

    app.engine=php
    
    app.engine.version=5.6
    
    http.firewall=none
    
    environment=production

    Je me retrouve avec mes pages web ne sachant plus afficher les accents !

    Après une recherche sur Googlle, je ne sais pas quoi faire. Je vous remercie par avance pour votre aide ...

    Le site en question : http://www.philisto.fr/

     Mon charset dans la balise "meta" est : iso-8859-1

    Remarque : Je viens de repasser sur une version PHP antérieure pour ne pas avoir le problème pour le moment (OVH laisse un délai pour la migration), mais le problème persiste avec PHP 5.6.

    -
    Edité par Belisarius 31 mars 2015 à 13:43:32

    • Partager sur Facebook
    • Partager sur Twitter
    Philisto.fr : site d'Histoire pour lycéens, étudiants, ... - Paul de Cassagnac (livre)
      31 mars 2015 à 12:06:50

      Salut, 

      Je ne sais pas si ça peut aider, mais il m'est arrivé une fois d'avoir un problème d'encodage de ce genre (mais pas en lien avec ovh). Quel éditeur de texte utilises-tu ? 
      Si tu utilises Notepad++, regarde au niveau de l'option "Encoding" et essaye de modifier l'encodage de tes fichiers.

      • Partager sur Facebook
      • Partager sur Twitter

      Nothing is true, Everything is permitted. (Merci de penser aux +1 pour les coups de pouce ! ça fait toujours plaisir :) )

        31 mars 2015 à 12:44:32

        Bonjour,

        Je viens de faire un test avec ma page d'accueil (je n'avais pas remarqué cette option avec Notepad++ que j'utilise effectivement), ça ne change rien.

        Merci pour la réponse tout de même.

        • Partager sur Facebook
        • Partager sur Twitter
        Philisto.fr : site d'Histoire pour lycéens, étudiants, ... - Paul de Cassagnac (livre)
          31 mars 2015 à 12:56:46

          Bonjour

          <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
          • Partager sur Facebook
          • Partager sur Twitter
          Aucun rêve n'est trop grand, aucun rêveur n'est trop petit :)
            31 mars 2015 à 13:00:07

            Bonjour Tanguy, je viens de tester également, ça ne change rien non plus ...
            • Partager sur Facebook
            • Partager sur Twitter
            Philisto.fr : site d'Histoire pour lycéens, étudiants, ... - Paul de Cassagnac (livre)
              31 mars 2015 à 13:10:59

              Comment le déclare tu

              pour t as connexuion a la bdd  ?

              • Partager sur Facebook
              • Partager sur Twitter
              Aucun rêve n'est trop grand, aucun rêveur n'est trop petit :)
                31 mars 2015 à 13:16:00

                Je ne comprends pas trop la question. Je me connecte comme ça :

                include("includes/identifiants.php");
                mysql_connect($adresse, $nom, $motdepasse);
                mysql_select_db($database);

                Ceci dit, le problème n'est pas lié à la base MySQL, le texte présent en HTML dans les pages PHP s'affiche également sans accent.

                Je viens d'essayer pas mal de choses, impossible de faire revenir les accents. :(

                • Partager sur Facebook
                • Partager sur Twitter
                Philisto.fr : site d'Histoire pour lycéens, étudiants, ... - Paul de Cassagnac (livre)
                  31 mars 2015 à 13:25:45

                  et en definissant le charset

                  http://fr2.php.net/manual/fr/function.mysql-set-charset.php

                  en revanche l extension que vous utilisé est obselete utilisez mysqli ou pdo

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Aucun rêve n'est trop grand, aucun rêveur n'est trop petit :)
                    31 mars 2015 à 13:35:19

                    Comment utilise-t-on mysql_set_charset ? Je ne suis pas très très doué en PHP, je n'ai par exemple jamais compris la POO.

                    Je le mets simplement comme ça en haut de page ?

                    "mysql_set_charset('utf8');" ?

                    Pour mysqli, cela signifie qu'il faut que je refasse toutes mes pages web ? >_< Est-ce lié au problème des accents ?

                    En ce moment je n'ai pas le temps, j'ai un concours, et mes révisions m'attendent ...

                    -
                    Edité par Belisarius 31 mars 2015 à 13:35:52

                    • Partager sur Facebook
                    • Partager sur Twitter
                    Philisto.fr : site d'Histoire pour lycéens, étudiants, ... - Paul de Cassagnac (livre)
                      31 mars 2015 à 13:40:52

                      Je viens de faire un test, même avec les pages purement HTML (avec extension .html) d'un sous-domaine, les accents sautent.
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Philisto.fr : site d'Histoire pour lycéens, étudiants, ... - Paul de Cassagnac (livre)
                        31 mars 2015 à 13:45:34

                        dans un prermier temps ouvrir tous vos fichiers html avec votre éditeur, et convertir tout en utf 8 sans bom....

                        et oui il faudra revoir votre développemnt mais mysqli est pas si diférent de mysql.

                        • Partager sur Facebook
                        • Partager sur Twitter
                        Aucun rêve n'est trop grand, aucun rêveur n'est trop petit :)
                          31 mars 2015 à 13:55:05

                          D'accord pour mysqli.

                          J'ai compris pour l'encodage. Cependant, quand sous notepad++ je passe en UTF-8 sans bom, ça me met en l'air tous les accents sur ma page PHP ou HTML. Or, sur mon sous-domaine j'ai de longs textes rédigés sur la page web en html. Dois-je remplacer manuellement tous les accents ? Y a t'il une solution qui puisse me faciliter la vie ? Car ça va me prendre énormément de temps si je dois le faire manuellement.

                          • Partager sur Facebook
                          • Partager sur Twitter
                          Philisto.fr : site d'Histoire pour lycéens, étudiants, ... - Paul de Cassagnac (livre)
                            31 mars 2015 à 14:00:08

                            avant de convertir tu enleve se qui y as sur la page tu convertis et tu recol ^^

                            ctrl a->ctrl c->ctrl x->convertion ->ctrl v ->ctrl s et voilou.

                            • Partager sur Facebook
                            • Partager sur Twitter
                            Aucun rêve n'est trop grand, aucun rêveur n'est trop petit :)
                              31 mars 2015 à 14:04:54

                              Merci pour cette astuce ! Je n'y aurais pas pensé.

                              Je n'ai pas le temps de procéder aux changements maintenant, donc je ne mets pas encore "résolu". Mes cours m'appellent !

                              J'aurai 3 jours de libres à la fin de la semaine pour voir tout ça, je mettrai "résolu" si je n'ai alors plus de problème.

                              -
                              Edité par Belisarius 31 mars 2015 à 14:06:42

                              • Partager sur Facebook
                              • Partager sur Twitter
                              Philisto.fr : site d'Histoire pour lycéens, étudiants, ... - Paul de Cassagnac (livre)
                                31 mars 2015 à 14:08:10

                                bon courage @+++
                                • Partager sur Facebook
                                • Partager sur Twitter
                                Aucun rêve n'est trop grand, aucun rêveur n'est trop petit :)
                                  2 avril 2015 à 18:14:36

                                  J'ai résolu le problème, pour ceux qui ont le même il faut mettre :

                                  header('Content-Type: text/html; charset=ISO-8859-1'); // écrase l'entête utf-8 envoyé par php
                                  ini_set( 'default_charset', 'ISO-8859-1' ); 

                                  en haut de page.

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  Philisto.fr : site d'Histoire pour lycéens, étudiants, ... - Paul de Cassagnac (livre)
                                    3 avril 2015 à 0:05:09

                                    Salut !

                                    Belisarius a écrit:

                                    J'ai résolu le problème, pour ceux qui ont le même il faut mettre :

                                    header('Content-Type: text/html; charset=ISO-8859-1'); // écrase l'entête utf-8 envoyé par php
                                    ini_set( 'default_charset', 'ISO-8859-1' ); 

                                    en haut de page.

                                    Si tu avais regardé la FAQ PHP, tu aurais vu que cette manière de faire est l'ultime recours, je suis certain que tu as d'autres possibilités plus propres et portables.

                                    Vérifie bien que tes fichiers sont encodés en ISO-8859-1 (Notepad++ ne supporte pas d'encoder des fichiers dans ce jeu de caractères, même s'il le lit et le reconnaît), que la connexion à ta base de données est déclarée avec le bon jeu de caractères, et vu que tu es en PHP 5.6, il faut aussi paramétrer le jeu de caractère de travail pour certaines fonctions, comme htmlentities() et htmlspeciachars(), pour ne citer que deux parmi les plus utilisées.

                                    Pour tes prochains projets, je te conseille vivement d'utiliser de l'UTF-8.

                                    -
                                    Edité par Ymox 17 mai 2020 à 0:16:28

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    Anonyme
                                      24 juin 2015 à 18:28:44

                                      bonjour,

                                      tout marche bien en php 5.5

                                      en passant en 5.6 j'ai bien le pb des caractères accentués et autres comme ç  etc... qui s'affichent en gros "?"

                                      la solution donnée par bélisarius implique-t-elle de revoir l'encodage de tous les fichiers-source ?

                                      où doit-on mettre les 2 lignes ci-dessous ?

                                      merci d'avance

                                      header('Content-Type: text/html; charset=ISO-8859-1'); // écrase l'entête utf-8 envoyé par php
                                      ini_set'default_charset''ISO-8859-1' );

                                      -
                                      Edité par Anonyme 24 juin 2015 à 18:30:18

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        2 juillet 2015 à 8:23:34

                                        @ Anonyme

                                        Si tu as un "include" en haut de page, tu peux mettre ces deux lignes dans cet include, sinon oui il faut faire chaque page, au tout début.

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                        Philisto.fr : site d'Histoire pour lycéens, étudiants, ... - Paul de Cassagnac (livre)
                                          11 juillet 2015 à 7:08:57

                                          pour info,

                                          je viens de mettre ce code en tête de mon application_top.php de mon oscommerce et ça fonctionne très bien avec php 5.6 sur OVH

                                          il y a peut être des solutions plus 'propre' mais au moins c'est efficace

                                          merci pour ces 2 lignes de code qui m'ont été très tuiles

                                          Stéphane

                                          www.bebefutechallans.com

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            21 août 2015 à 16:48:24

                                            Bonjour,

                                            J'ai téléchargé  NotePad++ et j'ai fait mes exercices avec effectivement des problèmes sur les accents.

                                            Je viens de lire vos commentaires, alors merci.

                                            J'ai juste eu à aller dansNotepad++, menu  encodage et sélectionner "encoder en UTF-8".

                                            Par défaut, je suppose c'était sur "Encoder en UTF-8(sans BOM)

                                            Voilà, je suis trop contente, alors merci à vous !!

                                             Heuuu en même temps, je m'aperçois que le titre du forum est " suite à migration...", hélas je n'en suis pas encore là :). Pas le bon forum, mais de bonnes infos !!

                                            -
                                            Edité par FranceLEGOFF 21 août 2015 à 16:53:08

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                            France LG

                                            Problèmes avec accents suite à migration PHP 5.6

                                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                            • Editeur
                                            • Markdown