Corriger le problème de Spip avec les caractères spéciaux et accentués dans les flux RSS
But de ce document
Ce document contient les modifications à effectuer dans Spip version 1.7.2, pour arriver à avoir des flux RSS prenant correctement en charge les caractères spéciaux et accentués.
Étant donné que j’ai un peu galèré pour arriver à corriger ce problème, j’ai écrit cet article en espérant qu’il serve à d’autres personnes.
Je précise que normalement ce problème est corrigé avec la version 1.8 de Spip.
Modification du fichier « backend.html »
Par défaut, ce fichier n’existe pas.
Il faut donc commencer par copier et renommer le fichier « backend-dist.html » en « backend.html »
Ensuite, il faut ajouter les lignes suivantes au tout début du fichier pour indiquer l’encodage à utiliser :
<?php
echo "<"."?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">";
?>
Test dans Thunderbird ou Firefox
Pour que la modification soit prise en compte immédiatement, il est possible de modifier le fichier « backend.php3 » en mettant 0 à la place de 3600 comme délai de mise à jour :
$delais = 0;
Une fois que tout fonctionnera correctement, il sera préférable de remettre le délai à 3600, pour limiter la surcharge du serveur.
Dans Thunderbird, pour vérifier que le flux est corrigé, il faut supprimer l’abonnement au site et le recréer, ce qui aura pour effet de rappeler les 10 derniers articles publiés.
Dans Firefox, il faut supprimer et recréer le marque page dynamique.
Avec la modification précédente, le problème des accents est corrigé, mais il reste un problème avec les espaces insécables ajoutés par Spip devant chaque signe « : »
Création d’un filtre personnalisé pour corriger les espaces insécables
Dans un flux RSS, l’espace insécable est remplacé par la chaîne de caractères suivante « »
Le problème des espaces insécables apparaît avec Firefox et Thunderbird mais est peut-être corrigé automatiquement avec d’autres lecteurs de flux RSS.
Pour corriger, ce problème, il faut créer un filtre personnalisé. Il faut ajouter ce filtre dans le fichier « mes_fonctions.php3 ». Si ce fichier n’existe pas, il faut le créer en respectant bien la syntaxe du nom car si Spip détecte l’existence de ce fichier, il l’utilisera automatiquement.
Ce filtre personnalisé nommé « filtre_rss », se contente d’effacer la chaîne de caractères «   ; ».
Voici donc le contenu du fichier « mes_fonctions.php3 » :
<?php
function filtre_rss($texte) {
$texte = str_replace(" ", "", $texte);
return $texte;
}
?>
Utilisation du filtre personnalisé
Pour utiliser ce filtre, il faut modifier le fichier « backend.html » et ajouter « |filtre_rss » sur la ligne affichant les 10 derniers titres des articles :
Et normalement l’affichage des flux RSS devrait être parfaitement lisible.
Historique des modifications
Version | Date | Commentaire |
---|---|---|
0.1 | 16/05/05 | Création par Tony GALMICHE |
Commentaires
Corriger le problème de Spip avec les caractères spéciaux et acc