Problème d'encodage avec les dates en toutes lettres

Il arrive fréquemment que lorsque on affiche une date en toutes lettres et en français avec la fonction strftime() de PHP, les lettres accentuées s'affichent mal à l'écran et sont remplacées par des � (par exemple : f�vrier ou d�cembre ).

Solution

Le problème vient de l'encodage choisi par PHP pour afficher les données locales pour la date et l'heure. Il faut donc préciser l'encodage ou les encodages (au cas où le système d'exploitation ne supporterait pas le premier encodage.

On ajoute cette ligne à notre script PHP :

setlocale(LC_TIME, "fr_FR.utf8", "fr_FR.utf-8","french.utf8", "french.utf-8");

Aller plus loin

Pour information, fonction strftime() est obsolète à partir de la fonction 8.1 de PHP Plus d'information sur strftime() et setlocale() sur le guide PHP

Notes de version

  • [03/01/2020] : Création de l'article
  • [28/01/2020] : Amélioration de la mise en page, liens

Auteurs et sources