[résolu] Caractères spéciaux dans flux RSS

Nouveau WRInaute
Je transforme les caractères spéciaux avec leur code respectifs (é -> &eacute , etc.), mon site passe bien le validator XHTML.

Maintenant j'ai voulu ajouter des flux RSS dans différentes pages, en passant par le javascript proposé par lamoooche.com et je rencontre 2 types de problèmes :

- le script ne passe pas le validator : j'ai résolu le problème en stockant le script dans un fichier séparé et en faisant un appel externe.

- sur certains navigateurs, les caractères spéciaux présents dans les titres de ces flux RSS ne s'affichent pas correctement (caractères bizarres à la place). Avec Firefox ils apparaissent correctement mais avec IE ça ne passe pas, d'où ma question :

est-il possible d'ajouter un traitement permettant de remédier à ce problème ou est-ce que c'est le webmaster du flux RSS qui doit modifier sa manière de coder ?

Merci pour votre aide. :wink:
 
WRInaute discret
Bonjour,

Pouvez-vous tester la chose en rajoutant <![CDATA[votre texte]]> dans les noeuds de votre fichier xml ?

On ne sait jamais...
 
WRInaute passionné
Effectivement, il faut traiter le flux au format utf8. Afin de remédier à ce type de problème, une solution consiste à gérer en php le flux via la fonction utf8_encode($str), où str est une chaîne de caractère.

PS : Bienvenue sur WRI. ;)

Edit : de ce fait, le document nécessite une déclaration en encodage utf-8...
 
Nouveau WRInaute
srappaille a dit:
Pouvez-vous tester la chose en rajoutant <![CDATA[votre texte]]> dans les noeuds de votre fichier xml ?

Le problème est que je n'ai pas accés au fichier XML des sites sur lesquels je récupère les flux XML...

le javascript généré par lamoooche est le suivant (avec idnews qui correspond à l'id du flux RSS que je veux afficher sur ma page) :

Code:
var idnews = 3220;
var nbItemsMax = 3;
var nohead = 1;
var colorHeader = "999999";
var colorArticle = null;
var nodesc = 0;
var nodate= 0;
var width = 600;
var titre_size = null;
document.write('<s'+'cript language="JavaScript" type="text/javascript" src="http://www.lamoooche.fr/jscript/shownews2.php?idnews='+idnews
+ '&nbItemsMax=' + nbItemsMax
+ '&nohead=' + nohead
+ '&nodesc=' + nodesc
+ '&nodate=' + nodate
+ '&titre_size=' + titre_size
+ '&colorHeader=' + colorHeader
+ '&colorArticle=' + colorArticle
+ '&width=' + width
+'"></sc'+'ript>');

et je fais un appel à ce script externe sur ma page avec un simple appel :

Code:
<script  type="text/javascript" src="http://www.../name.js"></script>

je vois pas comment traiter les caractères spéciaux avant leur affichage... :oops:
 
Nouveau WRInaute
mr_go a dit:
Bienvenue sur WRI. ;)

Merci pour votre accueil :wink:

mr_go a dit:
Edit : de ce fait, le document nécessite une déclaration en encodage utf-8...

le document qui contient le flux RSS (donc chez le site qui est partenaire du mien)

ou

mon document HTML (celui-ci contient déjà la balise meta suivante :
Code:
<meta http-equiv="Content-type" content="text/html; charset=utf-8"/>

???

désolé, je m'y perds un peu avec ces problèmes d'encodage... :? :oops:
 
Nouveau WRInaute
mr_go a dit:
Le problème est que je n'ai pas accés au fichier XML des sites sur lesquels je récupère les flux XML...

On peut toujours avoir accès au fichier xml, non ?

Le cas échéant, et si tu as accès à PHP, je te conseille de passer par MagpieRSS. Voici un bon tutorial au besoin :

https://www.webrankinfo.com/analyses/art ... cation.php

Préférant passer par du javascript plutot que du PHP, j'ai utilisé la solution alternative proposé sur ce lien (http://www.actifpub.com/)
Le problème des caractères spéciaux est réglé! :D

merci beaucoup. :wink:
 
Discussions similaires
Haut