Modérateur PHPfrance |
10684 Messages
22 mai 2016, 16:13
Bonjour,
Est-ce que les valeurs de $ligne['titre'] ou $recent_actu['city'] proviennent d'un formulaire html (get/post) ? de la base de données ? d'un fichier ?
Dans le meta de ta page, tu dis au navigateur que ce que tu lui envois est de l'utf-8 pour qu'il puisse l'afficher correctement à l'écran. Si tu as des caractères abscons, c'est qu'à un moment ce que tu lui envois n'est pas encodé en utf8, mais en autre chose (ascii, unicode, oem...).
En l'occurrence quand tu fais appel à strToLower(), php va utiliser le jeu de caractère local du serveur. Si celui-ci est en ISO, la chaîne générée en minuscule sera en iso, et comme dans ton meta tu indiques au navigateur qu'il reçoit c'est de l'utf-8, il l'affiche comme il peut

Avec mb_strToLower() tu indiques à php de ne pas se baser sur le jeu de caractère local, mais d'impérativement transformer la chaîne en restant sur de l'utf-8
(Si tu as la main dessus, tu peux aussi modifier les paramètres du serveur pour changer la valeur par défaut et pas être embêté

)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...