Si tu es obligé d'utiliser utf8_encode () c'est que tu as un problème d'encodage quelque part dans ton code ou que ton fichier n'est pas correctement encodé en utf-8. Tentes le copier /collé que j'ai indiqué plus haut car parfois la modification d'encodage des fichiers fonctionne mal. En faisant cela tu sera au moins certain que cela ne vient pas de l'encodage du fichier lui-même.
Pour le reste, tu devrais suivre un tuto sur l'utf-8. Celui donné en lien est un peu ancien, mais sur le fond tu devrais trouver des informations qui te serviront. Juste le header en php n'est plus indispensable puisqu'il est par défaut en utf-8 avec php5.6.
Et pour la bdd si tu utilise mysqli la commande adéquate est mysqli_set_charset ( mysqli $link , string $charset ) alors qu'avec pdo le mieux est de passer l'encodage dans la connexion :
$pdo = new PDO('mysql:host='.$hostname.';dbname='.$database.';charset=utf8', $username, $password, $options);
Il faudra aussi modifer les charset des champs de bdd vers utf-8 (souvent general_ci pour dire casse insensitive) dans phpmyadmin.
Partager