Hledat:

Invia.cz Eurovíkendy Kanárské ostrovy Dominikánská republika Madeira Last minute Vydělávejte peníze s INVIA.CZ
 

UTF-8

UTF-8 je zkratka pro UCS Transformation Format. Je to způsob kódování řetězců znaků Unicode/UCS do sekvencí bajtů. Varianta UTF-16 kóduje řetězce do posloupností 16bitových slov (2 bajty), Varianta UTF-32 do 32 bitových slov (4 bajty). UTF-8 je definováno v ISO 10646-1:2000 Annex D, v RFC 3629 a v Unicode 4.0.

Obsah

[editovat] Důvody vzniku, základní vlastnosti

Přirozené kódování znaků Unicode/UCS do 2 nebo 4 bajtů se nazývá UCS-2 a UCS-4. 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ů není formát UCS-2 a UCS-4 vhodný pro ukládání řetězců do souborů.

Tyto problémy řeší kódování UTF-8, které má následující vlastnosti:

[editovat] Způsob kódování znaků

Následující tabulka ukazuje způsob kódování. Pozice bitů „xxx“ jsou vyplněny bity kódu znaku, vpravo jsou nejméně významné bity. Pro kód znaku musí být použita nejkratší možná sekvence bajtů. Počet bitů v prvním bajtu ve vícebajtové sekvenci odpovídá počtu bajtů sekvence.

U+00000000 - U+0000007F 0xxxxxxx
U+00000080 - U+000007FF 110xxxxx 10xxxxxx
U+00000800 - U+0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
U+00010000 - U+001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
U+00200000 - U+03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
U+04000000 - U+7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

[editovat] BOM

Sekvence bajtů (hexadecimálně) Kódování
00 00 FE FF UTF-32 big-endian
FF FE 00 00 UTF-32 little-endian
FE FF UTF-16 big-endian
FF FE UTF-16 little-endian
EF BB BF UTF-8

Znak s kódem U+FEFF (v desítkové soustavě 65279) se nazývá BOM (Byte-Order Mark, česky přibližně „označení pořadí bajtů“), někdy také „UTF signatura“. V kódování UTF-8 je tento znak reprezentován trojicí bajtů 0xEF 0xBB 0xBF, v kódování UTF-16 big-endian dvojicí bajtů 0xFE 0xFF a v UTF-16 little-endian 0xFF 0xFE. Grafický význam znaku je „nedělitelná mezera nulové šířky“ (zero-width no-break space), je tak podobný znaku U+2060 (word joiner). [1] Hlavním důvodem užití tohoto znaku je rozlišení pořadí ukládání bajtů big-endian nebo little-endian v UTF-16 a odlišení samotného UTF-16 od UTF-8. V případě záměny pořadí bajtů není znak U+FFFE platný Unicode znak, navíc v kódování UTF-8 se bajty 0xFE a 0xFF nesmí vyskytovat. Užití BOM v UTF-8 je pro účel rozpoznání pořadí ukládání bajtů nadbytečné, nicméně množství aplikací operačního systému Microsoft Windows používá tento znak na začátku souboru pro rozlišení souborů uložených ve formátu UTF-8. V některých systémech (POSIX) není tato signatura používána a může být zdrojem problémů.

[editovat] Související články

 
UTF-8 v jiných jazycích: العربية, Dansk, Deutsch, Ελληνικά, English, Esperanto, Español, Suomi, Français, עברית, Hrvatski, Magyar, Italiano, 日本語, 한국어, Lietuvių, Latviešu, Nederlands, ‪Norsk (nynorsk)‬, ‪Norsk (bokmål)‬, Polski, Português, Русский, Slovenčina, Slovenščina, Svenska, Türkçe, Українська, 中文
Tento článek je převzat z české wikipedie - otevřené encyklopedie, originální článek naleznete na adrese: „http://cs.wikipedia.org/wiki/UTF-8
Stránka byla naposledy upravena v Stránka byla naposledy editována 21. 8. 2008 v 00:11.
Veškerý text je dostupný za podmínek GNU Free Documentation License (Autorské právo pro podrobnosti).
Další služby: Portál | Katalog | Hledej | Zprávy | Počasí | Kurzy | Práce | Slovník | TV | Online hry | Java hry | SMS | Loga a melodie | Chat | Fórum | Kontakt