Felet beror förmodligen på att den teckenkodning som webbservern rapporterar inte stämmer överens med filens teckenkodning, och med vad som anges i meta-tagen. Alla tre måste vara samma.
Om man visar filer lokalt (file://) så tas teckenkodningen från meta-tagen, och det verkar ju fungera.
Men man visar filer via http så används headers i själva http-protokollet. I t.ex. Apache kan man använda
AddDefaultCharset för att ange detta. Du kan kolla detta m.h.a. wget. T.ex.
wget -S http://ubuntu-se.org/drupal/ ger följande:
Kod: Markera allt
HTTP/1.1 200 OK
Date: Wed, 13 Jan 2010 17:42:34 GMT
Server: Apache/2.2.8 (Ubuntu) DAV/2
X-Powered-By: PHP/5.2.4-2ubuntu5.9
ETag: "ecc68b689da6c30af4c68fff90e57d4a"
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Cache-Control: must-revalidate
Set-Cookie: SESS8cf35dad143c0b04bd69d81fccb7468e=a290dd34c358e5a53dbd531bd13858e9; expires=Fri, 05 Feb 2010 21:15:54 GMT; path=/; domain=.ubuntu-se.org
Last-Modified: Wed, 13 Jan 2010 17:17:52 GMT
Connection: close
Content-Type: text/html; charset=utf-8
Som du ser står det "charset=utf-8" så alla HTML-filer måste vara kodade i UTF-8. Kolla med wget mot din server och se vad som står där. Använd sedan samma teckenkodning när du sparar filen och i meta-tagen.