UTF-8![]() UTF-8 (zkratka pro UCS/Unicode Transformation Format) je jedním ze způsobů kódování znaků, tedy přiřazení číselných kódů znakové sadě (písmenům abecedy a dalším znakům) pro potřeby počítačového zpracování textů. Představuje rozšířený mezinárodní standard dle norem Unicode/ISO/IEC 10646 a dominantní způsob kódování na internetovém webu, který umožňuje ukládat a zobrazovat texty s použitím široké palety světových písem. Používá proměnnou délku znaku od 1 do 4 bajtů, zatímco standardy UTF-16 a UTF-32 mají pevnou délku 2 a 4 bajty (16 a 32 bitů). Byl navržen pro zpětnou kompatibilitu s ASCII, které obsahuje jen základní sadu anglické abecedy a se kterým má totožný způsob kódování 1bajtových (7bitových) znaků. UTF-8 je definováno v ISO 10646-1:2000 Annex D, v RFC 3629[1] a v Unicode 4.0[2]. Důvody vzniku, základní vlastnostiPřirozené kódování znaků Unicode/UCS do 2 nebo 4 bajtů se nazývá UCS-2/UTF-16 a UCS-4/UTF-32. Pokud se nespecifikuje jinak, ukládá se nejprve nejvýznamnější bajt (tzv. konvence big-endian). S řetězci uloženými ve formátu UCS-2 nebo UCS-4 je spojeno několik problémů:
Z uvedených důvodů nejsou formáty UCS-2 a UCS-4 vhodné pro ukládání do souborů. Tyto problémy řeší kódování UTF-8, které má následující vlastnosti:
Způsob kódování znakůKaždému z více než milionu znaků (písmových i řídicích) je přiřazeno číslo – tzv. kódový bod – a čím je toto číslo vyšší, tím je potřeba k jeho kódování více bajtů. V každém bajtu jsou nejvýznamnější bity příznakové a indikují, kolik bajtů je pro zapsání znaku použito, zatímco zbývajícími bity je zapsán vlastní kód znaku. Pro přepis kódu znaku se používá formát Následující tabulka ukazuje způsob kódování. Pokud je nejvýznamnější bit bajtu 0 (hodnoty 0–127), jedná se o jednobajtový kód dle tabulky ASCII. V ostatních případech jsou rozhodující bity na začátku prvního bajtu: počet jedničkových bitů zakončených nulou (110–11110) odpovídá počtu bajtů sekvence (2–4), ostatní bajty začínají bity 10. Ostatní bity v sekvenci (označené xxx) slouží k vyjádření vlastního kódového bodu (kódu znaku). Počet n těchto bitů určuje (teoretický) počet 2n kódových bodů, tedy znaků, které lze touto sekvencí kódovat.
Podle původní definice byl jeden znak v UTF-8 reprezentován jedním až šesti bajty.[3][4] V listopadu 2003 byl rozsah kódů ISO/IEC 10646 omezen na Overlong kódováníPřestože ve výše uvedené tabulce ve sloupci „První kódový bod“ jsou u vícebajtových kódů uvedena nenulová čísla, ve skutečnosti by bylo možné pomocí vícebajtových posloupností kódovat znaky i s nižšími kódy; například znak Euro U+20AC (binárně 0010 0000 1010 1100) v UTF-8 normálně kódovaný třemi bajty (šestnáctkově OdkazyReference
Související článkyExterní odkazy
|
Portal di Ensiklopedia Dunia