Flux RSS et UTF-8

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


blman
WRInaute accro
WRInaute accro
 
Messages: 2915
Inscription: Ven Sep 05, 2003 10:46

Flux RSS et UTF-8

Message le Mar Nov 14, 2006 15:00

Bonjour,

je me prend la tête sur un problème et je suis sûr qu'ici, quelqu'un va pouvoir m'aider. Donc voila :

1- Voici le site dont je tire mon RSS :
- BDD en UTF-8
- PHP configuré en ISO-8859-1

2- J'affiche ce RSS (au format ISO-8859-1) sur 1 site en ISO-8859-1 et 1 en UTF-8
Sur le site encodé en ISO-8859-1, il n'y a aucun problème
Sur le site encodé en UTF-8, j'ai mes accents qui sautent (normal).

3- Je voudrais donc que mon RSS soit au format ouvert UTF-8 pour que je n'ais plus ces problèmes d'accents.

J'ai donc mis <?xml version="1.0" encoding="utf-8"?> dans l'entête de mon flux RSS et je l'ais encodé grâce à la fonction PHP utf8_encode() : http://fr3.php.net/manual/fr/function.utf8-encode.php

Et résultat, après vidage de tous les caches de magpierss, j'ai toujours le même problème : ça s'affiche bien sur les sites encodés en ISO-8859-1 et pas sur le site encodé en UTF-8.

Quelqu'un peut-il m'aider ?


blman
WRInaute accro
WRInaute accro
 
Messages: 2915
Inscription: Ven Sep 05, 2003 10:46

Message le Mar Nov 14, 2006 15:08

D'après tous les tests que je viens de faire :
- mon flux RSS est bien encodé en UTF-8
- mon cache magpierss n'est pas en UTF-8 (c'est peut-être une piste)

N'y aurait-il pas une option de configuration dans magpierss pour le forcer à retourner les données dans le bon encodage ?

Donc pour résumer :
J'ai 1 flux en UTF-8 qui ne s'affiche pas correctement sur une page encodée en UTF-8. Bug de magpierss ? Pb de configuration du PHP (sur OVH, je crois bien que c'est de l'ISO) ? Je sais pô...


TrAsKiN
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 136
Inscription: Lun Juil 17, 2006 19:57

Message le Mar Nov 14, 2006 15:15

Essait avec cette encodage : windows-1252


blman
WRInaute accro
WRInaute accro
 
Messages: 2915
Inscription: Ven Sep 05, 2003 10:46

Message le Mar Nov 14, 2006 15:19

Bé, j'aimerais bien conserver l'UTF-8 car c'est logiquement un format ouvert avec plus d'intéropérabilité (décidément, ce mot est très dur à écrire).


TrAsKiN
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 136
Inscription: Lun Juil 17, 2006 19:57

Message le Mar Nov 14, 2006 15:24

Je ne pourrais pas te dire si l'UTF-8 est plus ouvert mais en tout j'ai des problèmes ressemblant aux tiens. En utilisant l'encodage windows-1252 mes problèmes on disparus.

Sinon, comme tu l'a dit, regarder du côté de magpierss serais un bon début !

ACth
WRInaute passionné
WRInaute passionné
 
Messages: 795
Inscription: Sam Nov 11, 2006 12:32

Message le Mar Nov 14, 2006 15:25

Bonjour blman,

Vla, je ne suis pas certain, mais d'après ce que j'en ai compris ici et sur le chat, il semblerait que le problème provient des jeux de caractères et collations de connexion.

Il faut donc en gros mettre, directement après la connexion au serveur mysql, ceci:

Code: Tout sélectionner
@mysql_query("SET CHARACTER SET 'utf8'");
@mysql_query("SET character_set_results = NULL");

première requête : met les jeux de caractères et collations de connexion au charset souhaité (soit utf8 si base de données en utf8)
seconde requête : met le jeux character_set_results à NULL pour éviter des conversions au niveau du serveur mysql (lent)


Voila, en espérant que cela résoudra ton problème ;)


edit: je ne l'ai pas précisé, mais plus besoin des fonctions utf8_encode() et utf8_decode()


blman
WRInaute accro
WRInaute accro
 
Messages: 2915
Inscription: Ven Sep 05, 2003 10:46

Message le Mar Nov 14, 2006 17:47

Bon, bilan.

Déjà merci à ACth avec qui on a testé tout un tas de truc sur le chat pendant 2 bonnes heures.

Je n'ais toujours pas la réponse à ma question. J'ai pourtant essayer plein de chose, regarder du côté de la config de magpierss. Sur le chat, il y a visiblement plein de monde qui a le même problème et personne ne sait de quoi ça peut venir.

Je pense que ça vient de magpierss, je ne vois pas d'autre explication mais je suis toujours preneur.

Pour le moment, j'ai réglé mon problème en convertisant tous mes caractères en entités HTML avant même de générer le flux RSS

oxman
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 118
Inscription: Lun Juin 21, 2004 1:52

Message le Mar Nov 14, 2006 17:54

Tu as essayé :
header("Content-Type: text/html; charset=utf-8"); ?


blman
WRInaute accro
WRInaute accro
 
Messages: 2915
Inscription: Ven Sep 05, 2003 10:46

Message le Mar Nov 14, 2006 18:01

oxman a écrit:Tu as essayé :
header("Content-Type: text/html; charset=utf-8"); ?


oui
- on a essayé ça
- la solution décrite plus haut
- d'utiliser la fonction utf8_decode() un peu partout
- de configurer magpierss
- etc...

Rien à faire... Pourtant mon flux RSS est bien au format UTF8. Ce que je ne comprend pas, c'est pourquoi magpierss n'est pas capble de l'interpréter comme de l'UTF8.

oxman
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 118
Inscription: Lun Juin 21, 2004 1:52

Message le Mar Nov 14, 2006 18:05

Pour la petite histoire, j'avais fait une page PHP qui prennait des flux (iso et utf8) et qui retournait le tout en un flux mix UTF8.

Donc déjà c'est possible ;)

Déjà ton flux doit être en UTF8. Donc tu convertis les sources ISO en UTF8 et pas les UTF8 en UTF8

Tu me donnes l'url de ce RSS au format UTF8 une fois finis.


blman
WRInaute accro
WRInaute accro
 
Messages: 2915
Inscription: Ven Sep 05, 2003 10:46

Message le Mar Nov 14, 2006 18:15

Viens sur le chat !


blman
WRInaute accro
WRInaute accro
 
Messages: 2915
Inscription: Ven Sep 05, 2003 10:46

Message le Mar Nov 14, 2006 18:39

Bon bé merci oxman, ça fonctionne. Je fais un petit bilan demain, je test encore 2 ou 3 trucs pour bien finir et puis hop !

elbabass
Nouveau WRInaute
 
Messages: 5
Inscription: Ven Nov 03, 2006 14:53

Nombreux problèmes avec 2 encodages différents

Message le Mar Nov 14, 2006 18:45

J'ai eu un problème identique avec Ruby on rails.
Après enquète, la cause était la suivante:
- aucune conversion n'était faite depuis l'encodage de mon formulaire html vers la BDD (page en ISO, DB en ISO)
- une conversion était faite de la DB à la page (base en ISO, page en UTF)

Pour résoudre le PB, j'ai modifié mon formulaire afin qu'il enregistre de l'utf8 dans une base ISO (impossible de comprendre tous les caractères de la base, mais ça marche très bien)

L'idéal serait de convertir la DB en utf8 aussi, mais il faudrait convertir chaque ligne.

Sur d'autre projets, même type de pb: 2 conversion à l'enregistrement et 1 seule au retour.

Pour ton PB, n'y a-t-il pas un pb de conversion qui se ferait dans un sens et pas dans l'autre ?

Sinon, une solution universelle que j'ai mise en place une fois:
str_replace (
array( 'é', 'è', ...),
array('&acute;', '&egrave;', ...),
$string_entry);

Mis à part qu'en 5 langues j'avais 10 lignes de conversion de caractères accentués, cédilles et autres copyright, je n'ai plus jamais eu de pb.

PS: j'avais pas vu ton dernier message, je laisse quand même ;)

oxman
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 118
Inscription: Lun Juin 21, 2004 1:52

Message le Mar Nov 14, 2006 18:48

Cherche pas le problème est réglé ;p


papayou
WRInaute impliqué
WRInaute impliqué
 
Messages: 341
Inscription: Mer Avr 21, 2004 11:38

Message le Lun Aoû 20, 2007 18:39

oxman a écrit:Cherche pas le problème est réglé ;p


Je suis preneur de la solution !

@+

Flux RSS et UTF-8

Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités