Teckenkodningar i HTML

HTML - hypertextmarkeringsspråket har använts sedan 1991, men version 4.0 (1997) var den första där representationen av icke- ASCII-tecken (det vill säga engelska) är ganska standardiserad.

Bestämma kodningen med HTTP

När en HTML-sida visas av webbläsare måste den senare få veta i vilken kodning sidan sparas. För att göra detta kan du använda två metoder:

När du överför ett HTML-dokument via HTTP (säg till WWW ), anges dokumentets teckenuppsättning i HTTP-huvudet , till exempel för text i den ryska versionen av KOI-8- kodningen :

Content-Type: text/html; charset=koi8-r

Kodningsinformation kan infogas i själva HTML-dokumentet genom att använda en tagg metai en del av <head>HTML-dokumentet. Till exempel, i fallet med UTF-8-kodning, metaskulle taggen se ut så här:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

I standarden för HTML 5-språket skrivs metataggen som informerar webbläsaren om sidkodningen annorlunda än reglerna som antagits i tidigare HTML-standarder. Så exemplet ovan i HTML 5 skulle se ut så här:

<meta charset="utf-8" />

Denna metod fungerar bra för . Enligt HTTP/1.1 motsvarar det att inte specificera en teckenuppsättning i en rubrik med att använda ISO 8859-1- teckenuppsättningen .

Det vill säga, prioritetsfaktorn för webbläsaren på frågan "i vilken kodning för att visa dokumentet" kan vara rubriken som sänds av servern. I det här fallet måste webbläsaren ignorera motsvarande direktiv i META-taggen.

Ställa in rubrikerna som skickas av servern

1. När du använder Apache -servern kan du använda .htaccess -filen . I den måste du ange direktiv till servern angående standardkodningar: AddDefaultCharset UTF-8 I exemplet ovan kommer UTF-8 att tilldelas som standardkodning i serverhuvudena.

Vid Windows-1251- kodning : AddDefaultCharset windows-1251

Dessa .htaccess-fildirektiv är de vanligaste. Men i varje enskilt fall kanske de inte fungerar. Allt beror på serverinställningarna.

Det finns mindre populära direktiv som är avsedda att inaktivera serverhuvuden. När de är inaktiverade kommer webbläsaren att välja kodning beroende på indikationerna i META-taggen.

charsetdisable on

AddDefaultCharset Off

Ofta beror kodningsvisningsproblem på att äldre webbprogramvara (till exempel en webbplats , CMS , etc.) använder den nationella kodningen medan servern är konfigurerad att fungera med UTF-8. I det här fallet tvingar den fram språket, den kodning som krävs av programvaran (till exempel cp1251) för webbservern och (vanligtvis) PHP-tolken.

DefaultLanguage ru

AddDefaultCharset windows-1251

php_value default_charset "cp1251"

2. PHP-koddirektiv: I början av php-filen kan du ange en php-kod som skickar instruktioner till webbläsaren för att välja kodning: <?php header('Content-type: text/html; charset=utf-8')?>

Definiera en kodning med XML

I XHTML kan du också ange kodningen i XML -ingressen , till exempel:

<?xml version="1.0" encoding="utf-8"?>

HTML mnemonics och Unicode-koder

Tecken som har speciella namn (se HTML-mnemonics ) kan kodas som &entity;till exempel:

Samtidigt kan alla tecken också kodas i numerisk notation med Unicode decimala (&#DD;) eller hexadecimala (&#xHHHH;) koder .

Rätt webbläsare kommer att visa de tecken som anges på ovanstående sätt, oavsett dokumentets aktuella kodning och i synnerhet även i de fall där sådana tecken inte kan täckas av den. Således är japansk text möjlig i ett HTML-dokument skrivet i Windows-1251, etc.