charset mhp kode eller output?
I forlængelse af http://eksperten.dk/spm/557170 vil jeg da godt lige have en ting på det rene. Jeg har altid forstået det sådan at angivelsen af charset i f.eks. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> er med henblik på de tegn der bruges i kodedokumentet, ikke med henblik på outputtet i browseren. Hvis jeg f.eks. i et dokument med den nævnte angivelse (iso-8859-1) bruger tegn der ligger uden for dette charset vil koden ikke gå igennem valideringen uden fejl for netop at bruge ikke-tilladte karakterer. De ses i outputtet fra W3C validatoren som små firkantede felter med et spørgsmålstegn i midten. Hvis jeg så i stedet angiver de ulovlige karakterer med decimal- eller hexkoder, er der ingen problemer. Valideringen går igennem. Hvis jeg VIL bruge ikke-kodede specialtegn uden for iso-8859-1 i koden, skal jeg i stedet angive UTF-8 som charset. Så går det igennem validatoren. Det er jo logisk nok. Altså charset kun med henblik på selve kode-dokumentet.Men samtidig er det jo underligt at i XML opfattes UTF-8 som default charset (hvis ikke andet er angivet). For XML kode accepterer slet ikke non-ascii tegn. Alle disse tegn skal kodes enten med html-entities (nogle få), decimal- eller hexkode. Og hvorfor så have UTF-8 som charset (der jo netop rummer alle disse specielle karakterer)? Man skulle jo tro at meningen med UTF-8 var at bruge specialtegn i dokumentkoden. Betyder det så at angivelsen af charset alligevel kun er med henblik på outputtet (i en browser f.eks.) og slet ikke med henblik på koden? Så er det bare mærkeligt at validatoren accepterer mine hex-kodede specialtegn, også selv om charset er sat til iso-8859-1.
