PočítačeProgramování

UTF-8 - kódování znaků

Unicode podporuje prakticky všechny existující znakové sady. Nejlepší forma kódování Unicode znakovou sadu je kódování UTF-8. Podporuje slučitelnost s ASCII, odolnost ke zkreslení údajů, účinnost a snadnost zpracování. Ale popořadě.

kódování formulář

Počítače fungují nejen jako čísla abstraktní matematické objekty, stejně jako kombinace jednotek skladování a manipulaci pevné velikosti dat - byte a 32-bitová slova. Kódovací standard, musí vzít v úvahu při určování, jak prezentovat počet znaků.

V počítačových systémech, celá čísla uloženy v paměťových buňkách 8 bitů (1 byte), 16 nebo 32 bitů. Každá forma definuje kódování Unicode, která řada paměťových buněk je celé číslo odpovídající určitého symbolu. V normě jsou tři různé formy kódování znaků Unicode 8, 16 a 32-bitových bloků. V souladu s tím, jsou známé jako UTF-8, UTF-16 a UTF-32. Název UTF znamená Unicode Transformation Format. Každá z těchto tří forem kódovacího prostředku je roven zastoupení Unicode znak má výhody v různých aplikacích.

šifrování dat lze použít k reprezentovat všechny znaky ve standardu Unicode. Proto, jsou plně kompatibilní s řešením pro celou řadu důvodů, za použití různých forem kódování. Každý kódování lze jednoznačně převést na některý z dalších dvou bez ztráty dat.

princip nenalozheniya

Každý z formy kódování Unicode vyvinut s ohledem na non částečné překrývání. Například Windows-932 tvoří znaky jednoho nebo dva bajty kódu. Délka sekvence je závislá na první byte, takže vůdčí hodnoty bytů v sérii dvou byte a jednoho byte disjunktní. Avšak hodnota jednoho bajtu a koncové bajt sekvence může shodovat. To například znamená, že charakter vyhledávání D (kód 44), může to omylem vstupu do druhé části sekvence dvou-znakové „D“ (kód 84 44). Chcete-li zjistit, která sekvence je správná, program by měl vzít v úvahu předchozí bajtů.

Situace je složitější, pokud se zápas přední a zadní bajtů. To znamená, že za účelem odstranění nejednoznačnosti bude zpětné vyhledávání před dosažením začátek textu nebo unikátní kód sekvence. To je nejen neefektivní, ale není chráněn před možnými chybami, protože jediný chybný bajt na plné znění je nečitelný.

Konverze formátu Unicode vyhýbá tento problém, protože hodnota vedoucí, koncové a jedna jednotka úložiště nejsou stejné informace. Tím je zajištěno, že všechny Unicode pro vyhledávání a srovnávání, nikdy dávat chybné výsledky vzhledem k souběhu různých částí kódu znaku. Skutečnost, že tyto formy kódování dodržovat zásadu nenalozheniya, odlišuje od ostatních východoasijských multi-byte kódování.

Dalším aspektem nonintersection kódování Unicode je, že každá postava má jasně definovanou hranici. Tím se eliminuje potřeba skenovat neurčitého počtu předcházejících symbolů. Tato funkce se někdy nazývá self-stopování kódování. Zkreslení jednotek kódu představí zkreslení pouze v jednom znaku, a okolní postavy jsou stále neporušené. V 8-bitové konverzi formátu, v případě, že ukazatel ukazuje na byt, počínaje 10xxxxxx (v binárním kódu) najít je nutné začátek symbolu pro jednu až tři reverzní přechody.

konzistence

Unicode Consortium plně podporuje všechny 3 formy kódování. Je důležité, aby proti UTF-8 a Unicode, jako všechny formáty konverze - stejně platné formy provedení standard kódování znaků Unicode.

Byte orientace

Reprezentovat UTF-32 charaktery budou potřebovat 32-bitový kód jednotku, která se shoduje s kódem Unicode. UTF-16 - jeden až dva 16-bitových jednotkách. UTF-8 používá až 4 bajty.

kódování UTF-8 je navržen tak, aby byl kompatibilní se systémy byte orientované ASCII bázi. Většina stávajícího softwaru a praxe informačních technologií po dlouhou dobu spoléhal na reprezentaci znaků v posloupnosti bajtů. Více protokolů závisí na stálosti kódování ASCII a používá buď vyhýbá speciální řídící znaky. Jednoduchý způsob, jak přizpůsobit se situacím Unicode mohou pomocí 8-bitové kódování pro reprezentovat znaky Unicode, jakékoliv rovnocenné ASCII znak nebo řídicí znak. Za tímto účelem, a to je kódování UTF-8.

proměnné délky

UTF-8 - kódování proměnné délky, který se skládá z 8-bitových skladovací jednotky, horní bity, které udávají, na kterou část sekvence každého jednotlivého bytu patří. Jeden rozsah hodnot přidělených na první prvek sekvence kódu, další - na další. To poskytuje disjointness kódování.

ASCII

kódování UTF-8 je plně podporovány ASCII kódy (0x00-0x7F). To znamená, že znaky Unicode U + 0000-U + 007F jsou převedeny do jednoho bajtu 0x00-0x7F UTF-8 a tak se k nerozeznání od ASCII. Kromě toho, aby se předešlo nejasnostem, je hodnota 0x00-0x7F nepoužívá v jediném bajtu reprezentace Unicode. Pro kódování symbolů neideograficheskih jiné než ASCII, za použití posloupnosti dva bajty. Symboly v rozsahu U + 0800-U + FFFF jsou reprezentovány třemi bajty, a další kódy s více než U + FFFF vyžadovat čtyři bajty.

Oblast použití

kódování UTF-8 je obvykle dána přednost v protokolu HTML, a podobně.

XML se stal první standard s plnou podporou pro kódování UTF-8. Normalizační organizace jej také doporučit. Problém podpora v URL adrese, která je odlišná od ASCII znaky, byl vyřešen, když konsorcium W3C a IETF strojírenské skupiny přišel k dohodě o kódování všech URL adres pouze v UTF-8.

Kompatibilita s ASCII usnadňuje přechod na nový software. S UTF-8 pracuje většina textových editorů, včetně jEdit, Emacs, BBEdit, Eclipse a "Poznámkový blok" v operačním systému Windows. Žádná jiná forma kódování Unicode nemůže pochlubit takové podpory nástroje.

kódování výhodu, je to, že se skládá ze sekvence bytů. S UTF-8 řetězec je snadné s ním pracovat v C a jiné programovací jazyky. Toto je jediný způsob kódování pořadí nevyžaduje štítky bytů BOM nebo prohlášení kódování v XML.

self-synchronizace

V prostředí, které používá 8-bitové symboly na zpracování ve srovnání s jinými multi-byte znakové sady, UTF-8 má následující výhody:

  • První bajt kódu sekvence obsahuje informace o jeho délce. Tím se zvyšuje účinnost přímého vyhledávání.
  • Zjednodušené zjištění začátku symbolu jako výchozí bajt je omezena na pevnou rozsahu hodnot.
  • Žádné křižovatka byte hodnoty.

Porovnat výhody

kódování UTF-8 je kompaktní. Ale když se používá pro kódování východoasijských znaků (čínština, japonština, korejština, čínština psaní pomocí značek) používá 3-byte sequence. Také kódování UTF-8 je nižší než jiné formy kódování rychlost zpracování. Binární třídící linky produkuje stejný výsledek jako binární třídění Unicode.

Schéma kódování znaků

Schéma kódování znaků obsahuje kódování symbolů formu a způsob pro jednoho bajtu kódu polohy jednotek. Pro určení schéma kódování Unicode standard poskytuje použití počáteční značka pořadí bajtů (BOM, značka pořadí bajtů).

Když se BOM v UTF-8 zahrnuje štítek je omezen pouze s odkazem na použití forem kódování. Problémy při určování endian UTF-8 má, jak je jeho velikost kódovací jednotka je jeden bajt. není ani nutná, ani doporučeno pomocí BOM pro tuto formu kódování. BOM může dojít v textu, které mají být převedeny z jiných kódování pomocí značka pořadí bajtů nebo podpis pro kódování UTF-8. Je sled 3 bajty EF BB 16 16 BF 16.

Jak nastavit kódování UTF-8

HTML kódování UTF-8 je nainstalována s následující kód:

hlava

Meta http-equiv = "Content-Type" content = "text / html; charset = utf-8" ˃

V PHP je kódování UTF-8 nastavit prostřednictvím funkce header () na začátku souboru po nastavení chybu výstupní úroveň hodnoty:

˂? PHP

error_reporting (-1);

header ( „Content-Type: text / html; charset = utf-8‚);

Chcete-li se připojit k databázi MySQL kódování UTF-8 je nastaveno:

˂? PHP

mysql_set_charset ( 'utf8');

Kódování CSS-soubor je UTF-8 znaků je specifikován takto:

@charset "utf-8";

Uložíte-li soubory všech typů zvolit kódování UTF-8 bez BOM, jinak stránky nebudou fungovat. Chcete-li to v DreamWeave třeba vybrat bod menu „Modifikace - Vlastnosti stránky - Název / Kódování“ pro změnu kódování na UTF-8. Následované opětovným načtením stránky, zrušte zaškrtnutí políčka z „podpis Connect Unicode (BOM)» a použít změny. Pokud některý text na stránce nebo v databázi byl představen jiný způsob kódování, je nutné znovu zadat nebo re-kódovat. Při práci s regulárními výrazy, je nutné použít modifikátor u.

Můžete také uložit soubor v kódování UTF-8 v „Poznámkový blok“ systému Windows. Po zvolení položky menu „Soubor - Uložit jako ...“ nainstalovat potřebnou formu kódování a uložte soubor ve formátu UTF-8.

V textovém editoru Notepad ++, je-li nastavena jiná než UTF-8, přes menu „Převést na UTF-8 bez BOM» změnit charakter a uložit ve formátu UTF-8.

neexistuje žádná alternativa

V souvislosti s globalizací, kdy jsou vymazány politické a jazykové hranice, znakové sady, které mají místní charakteristiky, jsou k ničemu. Unicode je jediná znaková sada, která podporuje všechny lokalizací. UTF-8 - příklad řádného provádění Unicode, který je:

  • Podporuje širokou škálu nástrojů, včetně kompatibility s kódováním ASCII;
  • Je odolný proti zkreslení dat;
  • jednoduchý a účinný v léčbě;
  • je nezávislý na platformě.

S příchodem debaty UTF-8 o jakou formu kódování nebo znaková sada je lepší, to ztrácí smysl.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 cs.birmiss.com. Theme powered by WordPress.