Grunt. Je viens de passer une heure a essayer de comprendre d'ou venait le probleme d'encodage sur mon blog. Les accents ne fonctionnaient pas et les quotes (et double quotes) etaient echape.
Je regle les problemes d'accent relativement rapidement avec
function autoencoder($s)//encode in utf8 if necessary
{
$is_utf=(mb_detect_encoding($s) == "UTF-8");
if(!$is_utf)
$s=utf8_encode($s);
return $s;
}
Mais il reste les problemes de quotes echappe. Je verifie mon appel a html_entities et j'y vois bien :
$name= htmlentities(autoencoder($_POST['name']), ENT_NOQUOTES,"UTF-8");
ENT_NOQUOTES. Je demande DEJA de ne pas echapper les quotes. qui peut bien faire ca ? je reparcours tout le code a la recherche d'autres appel a htmlentities et je verifie les ENT_NOQUOTES la bas aussi. Pas de soucis.
Finalement, je repense a cet archaisme que sont les magic quotes. un test rapide confirme qu'ils sont active. Bon sang, je pensais que c'etait fini depuis 2002 les magic quotes ? Mais on dirait que c'est toujours active par defaut dans lenny. Heureusement, ca devrait mourrir definitivement avec PHP6 !