Les entités HTML pour les caractères accentués (é etc.) c'était indispensable à l'époque où les navigateurs ne savaient correctement gérer les jeux de caractères codés et qu'on n'avait pas de moyen aisé pour que le serveur indique au client avec quel encodage est réalisée la page qu'il va envoyer.
En effet, normalement le serveur envoie au client différentes informations avant d'envoyer le fichier lui-même. Ce sont les entêtes HTTP. Parmi ces entêtes il y en a une qui permet de spécifier le type MIME et l'encodage, c'est le Content-type.
Si on crée sa page en UTF-8 dans son éditeur, il faut faire en sorte que le serveur envoie le header indiquant que la page va être de l'UTF-8. Si on ne le fait pas, il y a de très fortes chances que le navigateur client ne s'y retrouve pas car quand il ne sait pas quoi faire il va soit essayer de deviner (avec tous les risques de tomber à côté de la plaque) soit il va utiliser un encodage par défaut (avec tous les risques de retomber à côté de la plaque).
Donc en définitive, quel que soit le codage utilisé dans sa page web, il faut que le serveur l'indique au client avant l'envoi de la page elle-même.
Pour indiquer qu'une page est réalisé avec le codage utf-8, on peut faire ça en PHP avec :
<?php header('Content-Type: text/html; charset=utf-8'); ?>
A mettre au tout début du fichier.
Notez que la ligne
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1" />
que certains se contentent de mettre à l'intérieur du fichier HTML ne suffit pas. En effet, pour analyser correctement une page web, le navigateur a besoin de connaître l'encodage AVANT de débuter l'analyse. Or, pour trouver cette ligne, il faut qu'il commence l'analyse sans savoir quel encodage est utilisé. Une fois qu'il la trouve, le navigateur recommence alors l'analyse depuis le début en utilisant cette fois le bon encodage.
Quelques articles à lire à ce sujet :
-
Introduction aux jeux de caractères
-
Le minimum absolu que tout développeur doit absolument, positivement savoir sur Unicode et les jeux de caractères (surtout la partie
Le point le plus important à propos des encodages où il est question d'encodage et de sites web).