UTF-8
UTF-8 (8 -kousek Unikódový transformační formát) je různě dlouhý kódování charakteru to je používáno reprezentovat Unikód- zakódoval text používat proud bajtů.| Tabulka s obsahem |
| 1 popis 2 výhody 3 Disadvantages 4 vnější spojení |
Popis
UTF-8 je současně normalizován jako RFC 3629 (UTF-8, formát transformace ISO 10646), který je docela rozsáhlý a detailní. Nicméně, krátký přehled je přinesen dole, v případě že čtenář je zainteresovaný jen v obecném přehledu.
Charaktery, které jsou menší než 128 být zakódován s jediným bajtem, který obsahuje jejich hodnotu: tito si odpovídají přesně k 128 7 -kousek ASCII charaktery. V ostatních případech, několik bajtů je vyžadováno a pak vrchní kousek každého bajtu je 1, v objednávce jich být vždy větší než 127 a ne vypadat jako některý 7-kousl ASCII znaky (zvláště ones užitý na kontrolu, např. řádkový předěl). Zakódovaný charakter je rozdělen do několika skupin kousků, který být pak rozdělen mezi nižší pozice uvnitř těchto bajtů.
| Rozsah kódu hexadecimální | UTF-16 | UTF-8 binární | Poznámky |
| 000000 - 00007F | 00000000 0xxxxxxx | 0xxxxxxx | ASCII rovnocennost rozsah; bajt začne nulou |
| 000080 - 0007FF | 00000xxx xxxxxxxx | 10xxxxxx 110xxxxx | první bajt začne 11, následující bajt (s) začít 10 |
| 000800 - 00FFFF | xxxxxxxx xxxxxxxx | 1110xxxx 10xxxxxx 10xxxxxx | |
| 010000 - 10FFFF | 110110xx xxxxxxxx 110111xx xxxxxxxx | 10xxxxxx 11110xxx 10xxxxxx 10xxxxxx | UTF-16 vyžaduje náhrady; vyrovnaný 0x10000 je odečten, tak vzor kousku není totožný s UTF-8 |
Například, alef charakteru (?), který je 0x05D0 unikóda, je zakódován do UTF-8 tímto způsobem:
- To se dostane do rozsahu 0x0080 k 0x07FF. To je proč to musí být zakódován používat 2 bajty, 110xxxxx 10xxxxxx.
- Hexadecimální 0x05D0 je ekvivalentní k binárním 101-1101-0000.
- 11 kousků je vloženo jejich objednávka do pozice se otiskovala “x “- s: 11010111 10010000.
- Konečný výsledek je dva bajty, více pohodlně vyjadřovaný jako dva hexadecimální bajty 0xD7 0x90. To je dopis aleph v UTF-8.
- Některé symboly unikóda (včetně Latinské abecedy) v UTF-8 bude natáčet jak malý jako 1 bajt, ačkoli jiní mohou pokračovat k 4. Tak UTF-8 bude obecně držet místo vyrovnal se UTF-16 (nejjednodušší kódování Unikóda) v textu kde 7-bitové ASCII znaky jsou obyčejné.
- Nejvíce existovat počítačový software (včetně operačních systémů) byl ne psaný s unikódem v mysli a používáním unikód s nimi by mohl vytvořit některé záležitosti kompatibility. Například, C standardní knihovna označí konec řetězce s charakterem, který má 1-kód bajtu 0x00 (hexadecimální). V UTF-16- zakódoval unikód anglický dopis “#rquote bude být kódovaný jak 0x0041. Knihovna bude zvažovat první bajt 0x00, zatímco konec řetězce a vůle ignorují něco po tom. UTF-8, nicméně, je navrhnut tak to kódovalo bajty nikdy přijmou některého speciality ASCII ' speciální znak ' hodnoty, předcházet tomuto a podobné problémy.
- UTF-8 řetězce mohou být tříděny používat standardní bajt-určoval rutiny třídění (nicméně tam bude žádná rozdílnost mezi mrtvicí a velkými písmeny s hodnotami překročit 128).
- Od vrcholu kousek je vždy soubor ve všech bajtech rozmanitý-bajt UTF-8 charaktery, většina softwaru navrženého k procesu ASCII nebo jiný 8-kódy kousku budou nikdy vidět některého je jako prostor tak bílá-prostor založil tokenizing rutiny budou pokračovat pracovat správně se UTF-8 zakódoval řetězce.
- Ačkoli zakódované charaktery jsou délka proměnné, jejich kódování je takové že jejich hranice mohou být nakresleny bez komplikovaný rozebrat.
- UTF-8 je implicitní hodnota pro XML formát.
Disadvantages
- UTF-8 je různě dlouhý; to znamená, že odlišné charakteristiky vezmou sledy odlišných délek kódovat. Ostrost toto mohlo být sníženo, nicméně, tím, že vytvoří abstraktní rozhraní k práci s UTF-8 řetězce, a dělat to všichni průhledný k uživateli.
- Zle-psaný (a non-standard-kompatibilní) UTF-8 analyzátor mohl přijímat číslo různý pseudo-UTF-8 reprezentace a přeměnit je na stejný unikódový výstup. Toto poskytuje cestu pro informace propustit minulé validační rutiny navržené k procesním datům v jeho 8-kousl reprezentaci.
- Ideographs používá 3 bajty v UTF-8, ale jediný 2 v UTF-16. Tak Číňan/japonský/korejský text začnou s více prostorem když reprezentovaný v UTF-8.
Externí odkazy
- RFC 3629, UTF-8 standard
- UTF-8 strana testu
- další UTF-8 strana testu