Submitted by xfacq on
Bonjour,
J'ai installé la version 4.6.5 de Drupal et je veux aggréger le rss de
linuxfr.org (http://linuxfr.org/backend/news/rss20.rss) mais je suis face
à un problème d'encodage :
- Drupal semble supporter l'utf-8 correctement
- Le rss de linuxfr.org est en iso-8859-15
=> le résultat de l'aggrégation et de la conversion donne des résultats qui ne
sont pas ceux escomptés :-/, j'obtiens par exemple : "définitions" à la place
de "définitions".
Les questions sont donc :
-
Quelqu'un a-t-il ce genres de problèmes et si oui, les a-t-il résolu ?
J'ai cherché sur leur site, mais sans succès :-( -
Comment faire une bonne conversion de l'iso-8859-15 vers l'utf-8 sachant
que j'ai bien essayé avec iconv et mb_convert_encoding ? Je m'y suis peut-etre
mal pris !
Pour info je suis sous Debian / apache2 / php5 / postgresql 8 (Unicode)
Voilà, merci pour vos infos !
a+
Xavier
Ca me parait bizzare... En
Permalien Soumis par Damien Tournoud le 14 Février, 2006 - 20:44
Ca me parait bizzare... En effet, on obtient "définitions" à la place
de "définitions" lorsque on essaye de lire en iso-8859 un flux encodé en fait en utf8 (et non l'inverse).
Pouvez vous nous donner une url où l'on pourrait regarder ce qui se passe?
Salut, Ca se passe par ici,
Permalien Soumis par xfacq le 14 Février, 2006 - 21:08
Salut,
Ca se passe par ici, c'est chez moi en test, alors merci de ne pas tenir
compte des articles :-)
http://pingoo.homelinux.org/?q=aggregator/sources/1
Merci,
Xavier
Ok je confirme qu'il y a
Permalien Soumis par Damien Tournoud le 14 Février, 2006 - 21:45
Ok je confirme qu'il y a bien un problème, lié à une modification dans PHP5. Je vais regarder si le bug a été signalé ou pas encore.
Pour le corriger de manière temporaire, éditez includes/common.inc et modifiez la fonction drupal_xml_parser_create():
en ajoutant la ligne marquée ci-dessous:
Est-ce que cela peut résoudre votre problème?
Nickel !!! Ca fonctionne
Permalien Soumis par xfacq le 14 Février, 2006 - 22:12
Nickel !!!
Ca fonctionne impéccable, j'ai bien tous les caractères accentués !
Ceci dit, ca parait super logique mais je n'ai pas eu l'idée de le faire :-p
Je t'invite à fournir un patch parce que je suis pas le seul à avoir eu le problème !
Encore merci, a+
Xavier
Je n'ai pas de quoi faire un
Permalien Soumis par Damien Tournoud le 14 Février, 2006 - 22:34
Je n'ai pas de quoi faire un patch proprement ici (je ne suis pas chez moi). Si tu veux t'en charger, n'hésite pas!
arff je sais pas comment
Permalien Soumis par xfacq le 14 Février, 2006 - 23:21
arff je sais pas comment vous fonctionnez pour faire vos patchs, donc dans
le doute j'en met un ici, et je te laisse ensuite seul maitre à bord pour un officiel,
tu le mérites bien :-D
--- includes/common.inc 2005-12-02 11:30:59.000000000 +0100
+++ includes/common.inc 2006-02-14 22:02:30.000000000 +0100
@@ -1598,6 +1598,7 @@
if ($out !== false) {
$data = $out;
$encoding = 'utf-8';
+ $data = ereg_replace('^(<\?xml[^>]+encoding)="([^"]+)"', '\1="utf8"', $data);
}
else {
watchdog('php', t("Could not convert XML encoding '%s' to UTF-8.", array('%s' => $encoding)), WATCHDOG_WARNING);
Merci encore, a+
Xavier
Voir
Permalien Soumis par Damien Tournoud le 15 Février, 2006 - 12:24
Voir http://drupal.org/node/49497