C'est l'encodage :
http://www.envrac.org/index.php/2006/03/11/58-un-tutoriel-sur-le-character-encoding
Tu as le choix :
1. dans ta page (dans le head du html)
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
2. dans le code php :
header ('Content-Type: text/html; charset=utf-8');
ce qui écrase le head du corps html
ps [Bobinours]
"Il existe deux types d'encodage: Le code ISO de la forme : � et Les ENTITEES de la forme : é"
Il existe plusieurs type d'encodage, dont iso-5589-1 (ou latin-1, bien de chez nous) et utf-8 (~ unicode, pouvant coder les caractères spéciaux sur plusieurs octets).
Essaye strlen('€'); en iso, ça fait 3. en utf-8, ça fait 1.
d'où le 'é' que tu voit apparaitre du style 'é' en iso, puisque 'é' est cosé sur 2 octets que iso code et interprète comme 2 caractères.