a écrit :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="fr-FR">

<head profile="http://gmpg.org/xfn/11">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />


Bonjour, j'ai sur mon site des caractères qui ne passent pas (accents, etc).
Regardez cette page : http://tinyurl.com/2ja9oj
Tout en bas, certains caractères sont remplacés par des ?.

Comment ça fonctionne ?
Ce sont des constantes définies dans un fichier de language.
Par ex.;
a écrit :
define('GRID_LEGEND_ICON_CONF','Conf&eacute;rences');


Je pensais pourtant que c'était la bonne manière d'écrire les accents en UTF8 ?

Merci !
Bonsoir,

La bonne manière d'écrire un caractère en UTF-8 consiste à écrire le caractère directement, et à enregistrer le fichier ou les données en UTF-8.

Les entités HTML de type &eacute; n'ont rien à voir avec UTF-8, et on peut les utiliser aussi bien dans un fichier enregistré en UTF-8 qu'en ISO-8859-1, ASCII ou SHIFT-JIS (pour ne prendre que quelques exemples).

Par contre, c'est bizarre: dans le code HTML de ta page, je ne retrouve pas «Conf&eacute;rences» mais bien «Conférences»... encodé en ISO-8859-1 à vue de nez. Si ce texte vient bien d'une variable dont la valeur est «Conf&eacute;rences», tu dois avoir une fonction qui traite tes données et fait la transformation des entités HTML en caractères simples.

PS: il peut être utile de lire ceci: [Pré-requis] Notions de base sur l'encodage des caractères.
...

Ben je ne peux pas tellement t'en dire plus. À priori ça se passe du côté de ton code PHP...