XML-deklarationen funkar endast när du serverar innehållet som XML, tex använder medietypen application/xml eller application/xhtml+xml. META-elementet fungerar endast i HTML, alltså med medietypen text/html.
Du kan ange charset med HTTP också, det funkar både för XML och HTML. :)
[edit]
Du bör också lägga META-elementet först i HEAD. :)
[/edit]
Remember, however, that when the XML declaration is not included in a document, the document can only use the default character encodings UTF-8 or UTF-16.
In order to portably present documents with specific character encodings, the best approach is to ensure that the web server provides the correct headers. If this is not possible, a document that wants to set its character encoding explicitly must include both the XML declaration an encoding declaration and a meta http-equiv statement
Kom ihåg att XML-deklarationen gör att IE använder quirks mode, så om du vill att IE ska använda Standards mode rekommenderar jag att du anger charset med HTTP. Eller det rekommenderar jag oavsett. :)
dvs antingen kommer title före base eller base före title - och före, mellan respektive efter dessa (base är f.ö. valfri, men title obligatorisk enligt regeln) kan det förekomma hur många (eller få) script, style, meta, link eller object som helst:
i XHTML 1.1 gäller regler med samma innebörd som i 1.0 Strict... dvs att title får ligga varsomhelst i head (och inte nödvändigtvis först).
DTD-läsning kan vara knepigt - och just regeln för head är bland de grötigaste IMHO ;)
Sedan tror jag att zcorpan menar att det är en bra vana att slänga in metataggen först i head - men orsaken är jag inte helt på det klara med, även om jag också hört den rekommendationen tidigare ;)
Jo det är sant, finns det nån bra sida där man kan läsa om hur man läser DTD:er. Har för mig att jag hittde någon förut som jag läste igenom lite halft.
Anledningen är att webbläsaren så tidigt som möjligt ska veta vilken charset som används... helst ska den ju veta det redan innan den börjar tolka dokumentet, vilket den gör om man sätter en riktig HTTP Content-Type header. :)
Ajo visst är det så att det kan vara skillnad mellan att ha informationen i HTTP-headern och att ha den i en metatagg - och jag argumenterar inte mot rådet att "lägga den överst" som så - men jag är nyfiken på om du har några konkreta exempel eller källor som styrker att det verkligen innebär någon praktisk skillnad (t.ex. i prestanda eller pålitlighet) om man lägger en viss metatagg överst eller nederst i head ? :)
The META declaration must only be used when the character encoding is organized such that ASCII-valued bytes stand for ASCII characters (at least until the META element is parsed). META declarations should appear as early as possible in the HEAD element.