Partage
  • Partager sur Facebook
  • Partager sur Twitter

Signe euro avec utf8_decode

Sujet résolu
    12 août 2009 à 11:08:38

    Bonjour,

    J'extrais des informations d'un flux RSS encodé en UTF-8 que j'affiche sur une page encodée en iso-8859-1 (pardon, encore une galère de charset... :( )

    Seul le signe euro me pose un problème. Pourtant il s'affiche correctement dans le flux RSS.

    Quand j'affiche les données brutes ( echo (string)$item->description; ), j'obtiens :
    --> 2 € abonnés

    Quand je décode les données avant de les afficher ( echo utf8_decode((string)$item->description) ), j'obtiens :
    --> 22?? abonnés

    J'ai également essayé de convertir "€" en "euro" avec un str_replace, mais ça ne fonctionne pas non plus.

    Avez-vous une idée pour afficher correctement ce foutu signe euro, ou au moins pour afficher "euro" à la place ?
    • Partager sur Facebook
    • Partager sur Twitter
      12 août 2009 à 11:24:12

      Ecris : € au lieu de €
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        12 août 2009 à 11:25:18

        Le signe euro normal n'est pas géré en iso-8859-1, c'est normal :(


        Moi perso je te dirai de TOUT ENCODER en UTF-8 pour le nombres de caractères acceptés
        • Partager sur Facebook
        • Partager sur Twitter
          12 août 2009 à 11:27:41

          Salut.

          @Jack : ouai mais si le flux ne lui appartient pas, il n'a pas forcément le choix :)
          Je confirme les dires de tyranoweb, € n'est pas géré correctement en iso-xxxx-1
          • Partager sur Facebook
          • Partager sur Twitter
            12 août 2009 à 11:38:24

            Citation : Kenshin_Himura

            Salut.

            @Jack : ouai mais si le flux ne lui appartient pas, il n'a pas forcément le choix :)



            Un petit coup d'htmlentities , ça devrait aller ;)
            On peut aussi utiliser la fonction utf8_decode

            Édition :
            • 12/08/09 à 11:37 : En fait on peut pas, le € est mal gérée :euh:
            </span>
            • Partager sur Facebook
            • Partager sur Twitter
              12 août 2009 à 12:02:07

              Arf, toujours pas :

              echo htmlentities((string)$item->description); affiche :
              22 € abonnés

              echo utf8_decode(htmlentities((string)$item->description)); affiche la même chose.

              echo htmlentities(utf8_decode((string)$item->description)); affiche :
              22?? abonnés

              Effectivement le flux ne m'appartient pas, donc pas moyen de coder le € en &euro; .

              EDIT :
              Pardon, ça marche avec ça :

              echo utf8_decode(htmlentities((string)$item->description, ENT_COMPAT, "UTF-8"));

              Merci beaucoup Jack !
              • Partager sur Facebook
              • Partager sur Twitter

              Signe euro avec utf8_decode

              × 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