Caractères bizarres

Par 6ber6ou, il y a 13 ans


Bonjour @ tous !

Mon site est encodé en UTF-8 , mais sur certaines pages j'ai ce caractère ? (losange noir avec un point d'interrogation à l'intérieur) qui s'affiche quand une variable contient des accents.
J'ai essayé de faire un utf8_encode sur les variables qui posent problème mais ça ne change rien.

J'ai remarqué également que quand j'envoi des e-mails les caractères accentués s'affichent ? (losange noir avec un point d'interrogation à l'intérieur) sur mon smartphone (HTC sensation XE), alors que sur un PC ils s'affichent correctement.

Je précise que les chaines accentuées posant problèmes ne sont pas extraite d'une BDD mais viennent d'un formulaire envoyer en POST.

J'aurai besoin d'un peu d'aide pour comprendre...

6 réponses

6ber6ou, il y a 13 ans

Justement le soucis c'est que le document est bien encodé en UTF-8(sans BOM) dans Notepad++.
Seul certains caractères acctenués provenant d'un formulaire envoyé en POST ne s'affichent pas correctement.

6ber6ou, il y a 13 ans

Merci pour ton lien très instructif, j'ai testé en supprimant les htmlspecialchars et htmlentites mais le problème été toujours là.
Par contre je viens de m’apercevoir que le soucis vient du fait que je fait un strtolower sur la variable, car quand je l'enlève les caractères s'affichent correctement !

Je ne comprends plus rien là !
C'est quoi ce comportement bizarre ? Si quelqu'un à la réponse je suis preneur ...

RedaElkhayat, il y a 13 ans

Salut, as-tu mets la meta avec l'attribue 'charset' en haut de tes pages html ?

6ber6ou, il y a 13 ans

En fait pour avoir de l'UTF-8 en minuscule avec des caractères accentués il faut utiliser mb_strtolower

mb_strtolower('Mon Prénom', 'UTF-8')