Bonjour tout le monde

Dans ma base j'ai une donnée avec le signe euro "€".
La table est en utf8-general-ci, la colonne aussi.

Je récupère cette donnée dans un script PHP, et je l'utilise pour créer un message envoyé par email.
Le fichier PHP est encodé en utf-8, j'envoie l'email avec le charset=utf-8

Problème : dans l'email je ne lis pas "€" mais "?"

Si j'écris le signe "€" directement dans mon fichier PHP (sans le récupérer depuis ma BDD MySQL), alors l'email affiche bien le signe €.
Et si je fais utf8_encode() sur ma donnée récupérée depuis la BDD, alors l'email affiche bien le signe €.
Cela me fait penser que le problème vient soit de la BDD, soit de la liaison BDD/PHP ?

J'ai lu que quand il est affiché "?" c'est que la donnée est encodée en ISO-8859 alors qu'on essaie de l'afficher en utf-8. Mais je ne vois pas où est-ce qu'il pourrait y avoir de l'ISO, et je ne sais pas quoi/comment vérifier.
C'est bien possible que la base ait été créée avec tous les types en latin1-swedish-ci, puis les données insérées, puis tous les types modifiés en utf8-general-ci via phpMyAdmin. Je sais pas si ça peut créer des problèmes de conversion...

Merci de m'aider !