Invia.cz
Last minute
Tunisko
Dovolená v Chorvatsku
Pojeďte do Egypta
Bulharsko
Vydělávejte peníze s INVIA.CZ
Znaková sada nebo také kódování (také kódová stránka) je kód, který páruje sekvence znaků z dané množiny (abecedy) s jejich jinou reprezentací, jako je sekvence přirozených čísel, bytů nebo elektrických pulzů, za účelem ukládání textu v počítači nebo přenosu textu telekomunikačními sítěmi.
Příkladem může být Morseova abeceda, která kóduje písmena latinky (a další znaky) pomocí sérií dlouhých a krátkých stisků telegrafního klíče. Dalším příkladem je znaková sada ASCII, která kóduje 128 znaků americké abecedy s číslicemi a dalšími symboly jako 7bitová čísla.
Kódování je také prostředkem pro kompresi (tj. zmenšení) anebo šifrování (tj. utajování) dat.
Proces standardizace začal zavedením znakových sad ASCII (1963) a EBCDIC (1964). Omezení těchto sad brzy vyplavala na povrch a vedla tak k vytvoření mnoha ad-hoc rozšíření. Potřeba podporovat více skriptovacích systémů včetně rodiny CJK – východoasijských skriptů si vyžádala ve srovnání s předchozími ad-hoc experimenty podporu mnohem většího množství znaků a rovněž systematický přístup k jejich kódování.
Obsah |
Konvenční znakové sady a kódování znaků byly shodné, stejný standard specifikoval, které znaky byly dostupné a současně jak mají být zakódovány v sekvencích kódových jednotek (obvykle jeden znak na kódovou jednotku). Z historických důvodů MIME a jiné systémy založené na těchto sadách používaly termín znaková sada i pro systémy pro kompletní kódování sekvencí znaků do sekvence bytů (oktetů).
Unicode a jeho paralelní standard ISO 10646, tuto ideu překonávají oddělením dostupných znaků a jejich číslování od toho, jakým způsobem jsou tyto znaky kódovány jako série „kódových jednotek“ (čísel omezené velikosti) a jakým způsobem jsou tyto jednotky kódovány do sekvence bytů (oktetů). Cílem této dekompozice je ustavit univerzální znakovou sadu, která může být kódována množstvím způsobů. Proto byly zavedeny následující pojmy:
Součástí standardů pro kódování znaků je obvykle i informace, jakým způsobem se v konkrétním jazyce provádí lexikální (abecední, alfabetní, …) řazení. Řazení nelze většinou provést jen prostým porovnáním kódových hodnot znaků (tzv. ordinální řazení), protože většina jazyků má různé výjimky (např. české Ch). Ne vždy lze realizovat lexikální řazení přidaných znaků do znakové sady.
Aby nemusel uživatel u každé stránky hledat v menu znakovou sadu vhodnou pro její zobrazení, je možné v HTML hlavičce uvést znakovou sadu, ve které byla daná stránka vytvořena.
Všechny dnes běžně rozšířené prohlížeče (Windows Internet Explorer, Firefox, Opera) tento tag implementují, jeho interpretace však závisí také na nastavení webového serveru. Stránka zobrazená z lokálního disku správně může při stažení ze serveru vypadat jako „rozsypaný čaj“ – dokud uživatel nevnutí prohlížeči ručně správné kódování nebo neupraví nastavení webserveru, který posílá prohlížeči chybnou informaci o kódování v http hlavičce.
Poměrně univerzálně fungující možností je vkládání znaků pomocí escape sekvencí. Sekvence &#n; zobrazí znak s unikódovou hodnotou n. Například sekvence á zobrazí český znak á. V tomto případě byla hodnota znaku uvedena decimálně, pokud bychom ji chtěli uvést hexadecimálně, použijeme sekvenci &#xn; (např. á pro znak á).
ASCII je nepochybně základním kódováním, z kterého vychází v euro-americkém prostoru ostatní standardy. Drtivá většina osmibitových znakových sad pouze rozšiřuje ASCII tím, že přidávají významy kódům 128-255, které se v ASCII nepoužívají.
| Sada | Popis |
|---|---|
| CP852 | osmibitové kódování češtiny v systému MS-DOS |
| ISO 8859-2 | osmibitové kódování češtiny v UNIXových systémech |
| Windows-1250 | osmibitové kódování češtiny používané v systémech Microsoft Windows |
| Kód Kamenických | osmibitové kódování češtiny částečně kompatibilní s CP437 (zachovává semigrafické znaky) |
| Unicode | současná celosvětová znaková sada, používaná v současných OS |
Standardy ISO/IEC 8859-x definují osmibitové znakové sady, používané zvláště v UNIXu/LINUXu. Novější unixové distribuce již přecházejí na Unicode s kódováním UTF-8.
| Sada | Skript |
|---|---|
| ISO 8859-1 | Latin-1, Západoevropský |
| ISO 8859-2 | Latin-2, Východoevropský |
| ISO 8859-3 | Latin-3, Jihoevropský |
| ISO 8859-4 | Latin-4, Baltský |
| ISO 8859-5 | Cyrilice |
| ISO 8859-6 | Arabský |
| ISO 8859-7 | Řecký |
| ISO 8859-8 | Hebrejský |
| ISO 8859-9 | Latin-5, Turecký |
| ISO 8859-10 | Latin-6, Nordický |
| ISO 8859-11 | Thaiský |
| ISO 8859-13 | Latin-7, Baltský |
| ISO 8859-14 | Latin-8, Keltský |
| ISO 8859-15 | Latin-9, Západoevropský |
| ISO 8859-16 | Latin-10, Jihovýchodoevropský |
Operační systémy rodiny Microsoft Windows používají několik osmibitových kódování, více nebo méně podobných standardům ISO8859-x. Kromě toho interně používají pro definici fontů šestnáctibitovou znakovou sadu WGL-4 (windows glyph 4), která obsahuje všechny znaky ze zde zmiňovaných kódových stránek Windows-1250 až Windows-1258.
| Sada | Skript |
|---|---|
| Windows-1250 | Latin-2, Středoevropský (podobný na ISO8859-2) |
| Windows-1251 | Cyrilice |
| Windows-1252 | Latin-1, Západoevropský (rozšiřuje ISO 8859-1) |
| Windows-1253 | Řecký (podobné ISO 8859-7) |
| Windows-1254 | Turecký (shoduje se s ISO 8859-9) |
| Windows-1255 | Hebrejský (rozšiřuje ISO 8859-8) |
| Windows-1256 | Arabský (částečně shodný s ISO 8859-6) |
| Windows-1257 | Latin 13, Baltský (téměř shodný s ISO 8859-13) |
| Windows-1258 | Vietnamský (velmi podobný Windows-1252) |
| Kódování | Popis |
|---|---|
| UTF-8 | kódování unicode s nejmenší kódovou jednotkou délky osm bitů. Nezávisí na tom zda je systém „little-endian“ nebo „big endian“, je kompatibilní s ASCII. |
| UTF-16 | jiné kódování unicode používané ve Windows a v jazyku Java. Nejmenší kódová jednotka má délku šestnáct bitů, má varianty „little-endian“ a „big-endian“, není kompatibilní s ASCII. |
| GB18030 | oficiální standard pro kódování čínštiny. Jde o netriviálně přemapovaný unicode, tak aby byl kompatibilní s GBK. Nejmenší kódová jednotka má délku osm bitů, je kompatibilní s ASCII. |
| GBK | microsoftí kódování čínštiny. Nejmenší kódová jednotka má délku osm bitů, je kompatibilní s ASCII. |
| UCS-2 | překonaný šestnáctibitový kód implementující pouze základní rovinu unicode, je nahražen UTF-16. Používal se ve Windows NT a Windows 2000. |
| WGL4 | panevropská šestnáctibitová microsoftí sada fontů |
Tyto znakové sady jsou osmibitovým kompatibilním rozšířením ASCII (že definují význam kódů 128 až 255).
| Kódování | Popis |
|---|---|
| CP437 | původní znaková sada MS-DOS / IBM-PC (USA) |
| CP737 | řečtina (vychází z CP437) |
| CP850 | západní Evropa (velmi podobná CP858) |
| CP852 | "východoevropské" jazyky (čeština, slovenština,polština,rumunština, ...) a němčina |
| CP855 | cyrilice (nepříliš používaná) |
| CP857 | turečtina |
| CP858 | západní Evropa (velmi podobná CP850) |
| CP860 | portugalština |
| CP861 | severské jazyky (islandština) |
| CP863 | francouzština (Kanada) |
| CP865 | severské jazyky kromě islandštiny (velmi podobná CP437) |
| CP866 | ruština |
| CP869 | řečtina (méně populární než CP737) |
| Kód Kamenických | kódování češtiny a slovenštiny vycházející ze sady CP437 |