Le cas "à " avec le filtre "attribut_html"
SPIP 3.0.10 (de base) sur serveur Windows IIS6 PHP 5.2.17.
Si un texte passe par le filtre "attribut_html" et contient un "à" suivi d'un espace ("à ") alors le filtre retourne une chaine vide.
Cela vient de la ligne 594 de "filtres.php" (ecrire/inc) :
$texte = preg_replace(array(",\n,",",\s(?=\s),msS".$u),array(" ",""),textebrut($texte));
Mettre un "u" à la suite de "msS" ne marche pas !! (ce qui est fait par $u il me semble). Et c'est bien le "preg_replace" en cause. Cela doit venir du code UTF8 de "à" = C3 A0 (A0 = un espace en ASCII !)
En remplaçant les ligne 593 et 594 par :
if ($textebrut) { // modif contenu if {}, les à passe mal le preg_replace $texte=textebrut($texte); $texte=preg_replace(',à,','##AACEN##',$texte); $texte=preg_replace(array(",\n,",",\s(?=\s),msS".$u),array(" ",""),$texte); $texte=preg_replace(',##AACEN##,','à',$texte); }
Ca marche mieux mais n'est pas trés propre.
Test simple : une image dans le portfolio d'un article avec le titre : "Titre à accent", le titre n'apparait pas dans l'attribut "title" de et dans l'attribut "alt" de .