Simplepie problème caractères spéciaux rss iso

pipido

Nouveau WRInaute
Bonjour,
J'utilise Simplepie j'ai un soucis d'affichage des caractère spéciaux,
mon site est en utf-8 et le flux que j'importe est un iso.

J'ai donc des losange avec un point d'interrogation à chaque caractères spéciaux...

Est-il possible d'intégrer une indication "iso" dans le code du fichier "feedparser.php" (où se trouve les infos d'appel du flux) ou bien autre part ?
J'aimerais garder la norme utf-8 sur mon site.

Bien à vous,
Pipido
 

pipido

Nouveau WRInaute
Et j'ai ceci en fin de code du fichier "feedparser.php" ,il y est question de utf8 mais pas de norme iso, cela est-il une piste?
le code doit-il être modifié ici?
Code:
// le titre du flux.
        echo utf8_decode($item->get_title());
        echo "</a><br />";

            // si enclosure, on affiche. C'est le cas du monde.
            if($enclosure=$item->get_enclosure(0)){

                   echo "<img src=\"";
                   echo $enclosure->get_link();
                   echo "\" border=\"1\" style=\"float: left;
                             margin: 4px; margin-top: 8px;\">";
            }
        // Et la description pour finir.
        echo utf8_decode($item->get_description());
        echo "</div>";
        }

 }
 

pipido

Nouveau WRInaute
rottman a dit:
Bonjour, tu peux essayer de remplacer utf8_decode par utf8_encode et ça devrait passer.

Bonjour Rottman,
il y a un changement, à la place des "�" j'ai des "é"
:) et donc mon problème reste entier :cry:
 

spouiik

WRInaute discret
et si tu mets dans le .htaccess (avant tout autre ligne, même rewrite engine on) : AddDefaultCharset UTF-8 ?
 

pipido

Nouveau WRInaute
J'ai donc donné mes url à spout et il a trouvé ! :D :D :D
voici sa réponse:

Salut,

Je viens de regarder.
- Ton meta charset en UTF8: c'est bon.
- Tes headers HTTP sont bons (pas de default charset ajouté par Apache).
- Le flux RSS de lemonde.fr est bien en UTF8: http://rss.lemonde.fr/c/205/f/3050/index.rss

Tu peux donc enlever les utf8_decode() que tu as mis dans feedparser.php.
Et après $feed->init(); essayer de mettre:
$feed->handle_content_type();
Pour savoir si ça fonctionne.

Alors, en enlevant "utf8_decode()" présent deux fois dans le code cela fonctionne !!!

Cela fonctionne si le fichier est un utf8
http://www.lemonde.fr/rss/sequence/0,2-3208,1-0,0.xml
Code:
<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet type='text/xsl' href='http://rss.lemonde.fr/xsl/fr/rss.xsl'?>
ou un iso-8859-1
http://www.musicinbelgium.net/pl/rss.php
Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0" 
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  xmlns:admin="http://webns.net/mvcb/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
si je ne me trompe pas...

Par contre, l'ajout de la ligne
Code:
$feed->handle_content_type();
juste après
Code:
$feed->init();
Cela joue quel rôle ? Car que je la place ou non il n'y a pas de différence apparente.

Et Merci !
 

pipido

Nouveau WRInaute
spouiik a dit:
et si tu mets dans le .htaccess (avant tout autre ligne, même rewrite engine on) : AddDefaultCharset UTF-8 ?
Merci pour ton aide spouiik, mais cela n'a malheureusement pas fonctionné.
 

Discussions similaires

Haut