Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Znakové sady. Znak – symbol Kódování ≈ znaková sada = kódová stránka (encoding ≈ character set (charset) = code page) Je systém přiřazování číselných.

Podobné prezentace


Prezentace na téma: "Znakové sady. Znak – symbol Kódování ≈ znaková sada = kódová stránka (encoding ≈ character set (charset) = code page) Je systém přiřazování číselných."— Transkript prezentace:

1 Znakové sady

2 Znak – symbol Kódování ≈ znaková sada = kódová stránka (encoding ≈ character set (charset) = code page) Je systém přiřazování číselných kódů znakům. Je reprezentováno tabulkou (mapování). Cílem je možnost ukládat symboly ve formě čísel. Kódové slovo – kód přiřazený symbolu Kódová jednotka – elementární část kódu

3 Délka kódu je maximálně jeden byte (single-byte) Znaková sada ASCII (základní) délka kódu: 7 bitů → 128 znaků Obsahuje znaky anglické abecedy, čísla, základní interpunkční znaménka a řídící (netisknutelné) znaky (control characters) NULL, CR, LF, TAB,... Rozšířená sada ASCII = „Národní znakové sady“ délka kódu: 8 bitů → 256 znaků Různé varianty obsahují různé specifické národní znaky. Výhodou je snadné zpracování a rychlost. Nevýhodou je nedostatečný rozsah sady (čínština má tisíce znaků).

4

5 Délka kódu je jeden a více bajtů (multi-byte) Kódovou jednotkou je jeden byte. Rozsah znakové sady závisí na počtu kódových jednotek. Dvě základní varianty: Všechny znaky jsou kódované stejným počtem bytů. Každý znak může být kódován různým počtem bytů podle potřeby (operace s řetězci jsou náročnější).

6 Základní znaková sada ASCII obsahuje pouze znaky anglické abecedy – jedno-bytové kódování. Neobsahuje žádné znaky národních abeced. V 80. letech vzniklo množství národních znakových sad. Pro češtinu existují: ISO (ISO Latin 2) windows-1250 (CP1250) CP852 (PC Latin 2) a další: KEYBCS2 (kódování bratrů Kamenických, CP859), East8, ICL, Cork Klíčovým problémem je nedostatek pozic pro různé národních znaky - jednotlivé znaky se překrývají.

7 Současně se vznikem národních kódování začala vznikat univerzální znaková sada – více-bytové kódování. Dvě iniciativy – Unicode Consortium a ISO. V roce 1991 se již dříve kompatibilní standardy sloučily do Unicode. Všechny verze standardu Unicode vychází souběžně jako ISO standardy. Jednotlivé verze standardu jsou vzájemně kompatibilní. Poslední verze Unicode 6.0 vyšla v roce

8 Znaková sada Unicode definuje několik kódování: UTF-7, UTF-8, UTF-16 a UTF-32. Kromě kódování Unicode (UTF-n) se používají ještě starší kódování ISO: UCS-2, UCS-4. Velikost kódové jednotky je 1, 2 nebo 4 byty. Pokud je kódová jednotka větší jak 1 byte, tak je nutné určit pořadí bytů. Big Endian (výchozí pořadí) nebo Little Endian Pořadí bytů se určuje značkou BOM (Byte Order Mark) na začátku souboru/dat.

9 Unicode má nyní 98,884 tisknutelných znaků. Více jak dalších pozic je volných. Kromě toho umožňuje i definice vlastních znaků. UTF-8UTF-16UTF-32UCS-2UCS-4 Min. počet bytů Max. počet bytů Velikost kódové jednotky 8 bitů16 bitů32 bitů16 bitů32 bitů

10 UTF-8UTF-16UTF-32UCS-2UCS-4 Všechny znaky ano neano Proměnná délka znaku ano ne Režiemalástřednívelkástřednívelká Kompatibilní s ASCII anone Závisí na pořadí bytů neano Doporučeno k používání ano ne

11 function utf8_strlen($str) { $count = 0; for ($i = 0; $i < strlen($str); $i++) { //pres vsechny znaky $value = ord($str[$i]); if ($value > 127) { if ($value >= 192 && $value <= 223) { $i++; } elseif ($value >= 224 && $value <= 239) { $i = $i + 2; } elseif($value >= 240 && $value <= 247) { $i = $i + 3; } else { echo ‘Not a UTF-8 compatible string ' } } $count++; } return $count; }

12 UTF-8 řeší naprostou většinu všech problémů s kódováním. Aplikace může pracovat s daty v libovolném jazyce. Podpora ze strany aplikací je stále ještě špatná. Pro reprezentaci dat uvnitř aplikace může být někdy výhodnější využít kódování s konstantním počtem bytů na jeden znak. Příliš žluťoučký kůň pěl ďábelské ódy.

13


Stáhnout ppt "Znakové sady. Znak – symbol Kódování ≈ znaková sada = kódová stránka (encoding ≈ character set (charset) = code page) Je systém přiřazování číselných."

Podobné prezentace


Reklamy Google