Si vous utilisez un hébergement mutualisé pour quelconque site ou service, lors du développement, tout doit être encodé de la même manière. Comme je le conseil dans l’article concernant les problèmes d’encodage, utiliser UTF-8 avec PHP n’est pas toujours facile, surtout quand c’est PHP lui-même qui vous transforme vos chaines de caractère UTF-8 en ISO-8859-1 (si c’est l’encodage de caractère utilisé sur le serveur…).
C’est en effet le cas de la fonction substr qui converti les chaines de caractères. Comprendre d’où vient l’erreur d’encodage sans penser que ça pourrait être PHP lui-même, c’est dur… Donc, pour spécifier l’encodage à utiliser pour substr, il faut utiliser la fonction mb_substr et lui ajouter un argument comme ceci:
$new_string = mb_substr($string, $start, $end, 'UTF-8');
Que cet article aide de nombreuses personnes à ne pas chercher pendant des heures un problème qui n’est pas réellement de le ressort…
Expérience traumatisante que de rendre W3C valide un plugin WordPress, au demeurant intéressant, mais qui provoque des erreurs systématiques d’encodage…
Pas vraiment conciliant le PHP!
Grâce à vous, il va finalement me rester quelques cheveux…
Mille mercis!
Alors là… Merci ! Je viens de perdre une heure à relire et relire mon code pour découvrir que c’était ce substr qui ne fonctionnait pas avec ma chaîne utf-8. mb_ va bien m’aider pour les strtolower etc…