Att hantera teckenkodningar i HTML och CSS (handledning)

Varför bör du läsa detta??

Om en webbläsare inte kan upptäcka vilken teckenkodning som används i en webbsida, så kan innehållet bli oläsbart. Informationen i denna handledning är särskilt viktigt för de som underhåller och utvidgar en flerspråkig webbplats. Men att deklarera teckenkodning för ett dokument är faktiskt viktigt för alla som skapar sådan HTML och CSS som innehåller tecken vilka inte är representerade enligt ASCII-koden. Detta är viktigt, eftersom andra användares webbläsarinställningar kan försämra läsbarheten, trots att de som skapar innehåller tycker att det ser bra ut när de själva inspekterar innehållet. Denna handledning kommer att ge dig en förståelse för detta område, och du kommer att vara bättre rustad att göra kloka beslut.

Mål

När du har gått igenom denna handledning så bör du:

Denna handledning ger en översikt över, och ger länkar till, artiklar som tillsammans hjälper dig, när du ska skapa innehåll i HTML och CSS, att kunna hantera viktiga aspekter som har med tecken och teckenkodningar att göra.

I korthet

Spara dina sidor som UTF-8.

Deklarera alltid vilken kodning dina dokument har. Använd HTTP-huvuden om det är möjligt. Deklarera även i själva dokumentet.

<meta charset="utf-8">

Du kan använda @charset eller HTTP-huvuden för att deklarera kodningen av din formatmall, men du behöver bara göra detta om din formatmall innehåller tecken som inte tillhör ASCII, och om, av något skäl, du inte kan vara säker på att kodningen av HTML-innehåll överensstämmer med kodning av formatmallen.

Undvik om möjligt att använda en markering av byte-ordning (byte-order mark) för innehåll i UTF-8, och säkerställ att din HTML-kod sparas i Unicode normalization form C (NFC).

Låt bli att använda undantagstecken, i andra fall än för osynliga tecken eller för tvetydiga tecken. Och använd inte kontrolltecken i Unicode (Unicode control characters) i de fall då du istället kan åstadkomma samma effekt med uppmärkning.

Viktig bakgrundsinformation

Om du känner dig som nybörjare i detta temaområde, så finns det ett antal begrepp som du behöver känna till för att du ska dra full nytta av resten av denna handledning. Om du är bekant med dessa begrepp, så kan du hoppa direkt till nästa sektion.

Att välja och använda en teckenkodning

Webbinnehåll (en webbresurs) består av en sekvens av tecken. Tecken står för bokstäver i ett alfabet, interpunktion, etc. Men innehåll lagras i en dator som en sekvens av bytes, vilka är numeriska värden. Ibland behövs fler än en byte för att representera ett enskilt tecken. Analogt med hur man använder koder vid spionage, så påverkas konverteringen av en sekvens av bytes, till en sekvens av tecken, av vilken nyckel som användes för att koda texten. I detta sammanhang kallas nyckeln för en teckenkodning. Det finns många olika teckenkodningar som man skulle kunna använda.

I dokumentet Att välja & att använda en teckenkodning (Choosing & applying a character encoding) finns enkla råd om vilka teckenkodningar du bör använda för ditt innehåll, och hur kodningarna användes.

Hur man deklarerar en teckenkodning

Du bör alltid ange vilken kodning som använts för en webbsida i HTML eller XML. Om du inte gör det, så riskerar du att ditt innehåll inte hanteras på ett korrekt sätt. Detta är inte bara en fråga om mänsklig läsbarhet, eftersom innehåll i webbsidor i ökande omfattning bearbetas maskinellt. Du bör även försäkra dig om att du inte anger olika kodningar på olika ställen i innehållet.

Att deklarera teckenkodning i HTML (Declaring character encodings in HTML) ger kortfattade råd till den som bara vill veta hur man gör, men här finns även mer detaljerad information för den som så behöver.

Att deklarera teckenkodning i CSS (Declaring character encodings in CSS) ger motsvarande information för CSS.

Byteordningsmärke (BOM)

Byteordningsmärket (byte-order mark, BOM) kan du komma i kontakt med när du använder teckenkodningar baserade på Unicode, såsom UTF-8 och UTF-16. I vissa fall måste du ta bort BOM:en, i andra fall ska du försäkra dig om att BOM:en faktiskt är på plats.

The byte-order mark (BOM) in HTML ger den information du behöver behärska för att kunna förstå användningsaspekter på BOM.

Normaliseringsformat för Unicode

Normalisering är ett begrepp du behöver känna till om du skapar HTML-sidor med CSS-formatmallar i UTF-8 (eller andra Unicode-kodningar), och det är speciellt viktigt om du hanterar text som använder accenter eller andra diakritiska märken.

Normalization in HTML and CSS ger ytterligare förklaringar av detta.

Användning av undantagstecken

Du kan använda ett undantagstecken för att - med hjälp av enbart ASCII-tecken - representera godtyckligt tecken i Unicodes teckenuppsättning, då det ska förekomma i HTML, XML eller CSS,

Using character escapes in markup and CSS ger goda råd om hur man använder undantagstecken, och beskriver hur du faktiskt använder dem när de krävs.

Tecken eller uppmärkning?

Slutligen skall nämnas att det finns en uppsättning av Unicode-tecken vilka i mångt och mycket liknar kontrolltecken (control characters), och vissa av dessa får effekter som påminner om uppmärkning. Frågan är då: vilka sådana tecken kan du använda, och vilka bör du undvika?

Characters or markup? ger svar på den frågan.