A la place de la ligne <meta charset="utf-8" />
essaie ça :
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
Non, il faut bien garder
dans l'en-tête de la page (explication plus bas). C'est la bonne manière de déclarer l'encodage à utiliser en HTML5, et le mieux est d'utiliser UTF-8. En revanche s'il y'a un soucis d'affichage des caractères, vérifier que le navigateur comprend bien qu'on souhaite afficher de l'UTF-8 (si ce n'est pas le cas, le navigateur n'a pas correctement traité la déclaration et il y'a donc un soucis ailleurs), et surtout que le fichier lui même a bien été enregistré codé en UTF-8. Sous Windows, en utilisant Notepad++, on peut par exemple le vérifier dans le menu approprié (il doit s'appeler encodage), si ce n'est pas le cas, il faut le convertir. Sous GNU/Linux, en excluant les configurations exotiques, les éditeurs de texte encodent en UTF-8 par défaut normalement.
EDIT Ca marche, j'ai vu

l'ISO 8859-1 est plus pour les caractères utilisés en France. L'utf-8 c'est plutôt pour les pays de l'est.
C'est à moitié vrai. L'ISO 8859-1 est un encodage sur 8 bits (=256 caractères, qui permet d'étendre la très classique table ASCII, codée sur 7 bits = 128 caractères), créé pour intégrer divers caractères des alphabets occidentaux que ne contenait pas la table ASCII. Le français entre autre est visé. Biensûr, 256 caractères ne sont toujours pas suffisants pour inclure tout ce dont on peut avoir besoin. Il y'a donc d'autres encodage ISO 8859, comme l'ISO 8859-5 qui exhibe des caractères cyrilliques.
Pour l'écriture du français (et dans la plupart des autres cas aussi), l'ISO 8859-1 est désuet. Il ne contient en effet pas le symbole €, ou l'œ. Ils sont en revanche présents dans l'ISO 8859-15. Lorsqu'on souhaite rester sur de l'encodage sur 8 bits uniquement, on préfèrera donc ce dernier.
L'UTF-8 pallie le problème des 256 caractères maximum dans la même table. En effet, il permet d'encoder sur plus que 8 bits, en juxtaposant plusieurs octets, jusqu'à 4. On peut donc obtenir jusqu'à 2³² caractères en utilisant 4 octets, tout en n'utilisant qu'un octet lorsqu'on utilise des caractères de la table ASCII. Puisqu'en effet, autre gros avantage, la table ASCII est utilisée à l'identique dans l'UTF-8, entièrement compatible donc. C'est donc évidemment l'encodage à privilégier dans la majorité des cas. (sans rentrer dans les détails, on lui préfèrera l'UTF-16 qui encode toujours sur 2 octets lors de traitement très lourds sur des chaînes de caractères, c'est moins coûteux en terme de performance que de traiter une chaîne avec des caractères encodés sur un nombre variable d'octets)
On a dès lors accès à des dizaines de milliers de caractères (qui sont définis dans la norme Unicode), incluant les alphabets Chinois et Japonais par exemple.
Un autre petit détail est l'encodage spécifié dans la réponse HTTP. Par défaut ISO-8859-1 en HTTP 1.1, il faudrait donc l'ajuster en UTF-8. C'est en principe au serveur web de s'en charger donc on n'y prêtera pas attention.
PS : on n'a pas en réalité 2³² caractères à sa disposition en UTF-8 mais moins puisqu'il y'a déjà des séquences réservées pour annoncer un caractère sur plusieurs octets, et d'autres séquences sont exclues.