Přeskočit na obsah

Kódování češtiny

Z Wikipedie, otevřené encyklopedie
(přesměrováno z Osmibitový kód)

Kódování češtiny je libovolná reprezentace nějaké znakové sady, která obsahuje všechna písmena, číslice a další znaky používané v českých textech, číselným kódem.

Čeština používá tolik znaků s diakritikou, že je pro ni prakticky nemožné vytvořit sedmibitové kódování založené na ASCII. ČSN 36 9103[1] vydaná v roce 1979 definovala 8bitový kódovaný soubor symbolů KOI-8čs pro češtinu a slovenštinu vycházející z mezinárodní normy ISO/IEC 646, která je založena na ASCII. Kódování primárně navržené pro sálové počítače řady JSEP bylo použito i v české lokalizaci operačního systému CP/M, jako kódování používané mikropočítačem SAPI-1 a v textovém procesoru Text602, ale v praxi se příliš nerozšířilo.

Většího rozšíření dosáhly kódové sady vyvinuté firmami IBM, Microsoft a Apple, které ve snaze o minimalizaci počtu kódování ve svých operačních systémech vytvořily osmibitová kódování pro své operační systémy PC-DOS (MS-DOS), Windows a MacOS vždy pro celou skupinu východoevropských jazyků psaných latinkou. V rámci ISO/IEC 8859 bylo pro uvedené jazyky vytvořeno kódování ISO 8859-2, které se dočkalo uplatnění především na unixových operačních systémech. Kvůli značné těžkopádnosti používání kódových stránek v operačním systému MS-DOS bylo na počítačích kompatibilních s IBM PC velmi oblíbené kódování bratří Kamenických, nazývané také KEYBCS2.

Okolo roku 1990 tak existovalo nejméně 6 různých osmibitových kódování pro češtinu. Neexistence jednotného kódování přinášela problémy s kompatibilitou a přenositelností textů, které zintenzívněly s nástupem elektronické pošty a internetových služeb, především WWW, a které mizejí teprve s přechodem na jednotné kódování ISO 10646/Unicode.

Osmibitová kódování češtiny

[editovat | editovat zdroj]

Kódování češtiny na počítačích se musí vypořádat s faktem, že čeština s výjimkou spřežkového zápisu písmene ch používá diakritický pravopis a základní latinskou abecedu rozšiřuje o 15 malých a 15 velkých písmen s diakritikou (á, č, ď, é, ě, í, ň, ó, ř, š, ť, ú, ů, ý, ž, Á, Č, Ď, É, Ě, Í, Ň, Ó, Ř, Š, Ť, Ú, Ů, Ý, Ž), což znemožňuje vytvoření sedmibitového kódování založeného na kódování ASCII. V době vytváření sedmi a osmibitových kódování existoval společný česko-slovenský stát, proto bylo žádoucí vytvořit společnou znakovou sadu pro češtinu a slovenštinu. Pro zápis slovenštiny se používá abeceda rozšířená o 17 malých a 17 velkých písmen s diakritikou a složená písmena dz, a ch. Spolu se 2 malými a 2 velkými německými písmeny (ö, ü, Ö, Ü), která se často používají pro zápis německých jmen, to představuje rozšíření abecedy o 22 malých a 22 velkých písmen. Dohromady je použito 96 písmen, což je více než počet tisknutelných znaků v kódování ASCII. KOI-8čs navíc obsahuje ještě francouzské à, À.

Převážná většina kódování znaků vychází z kódu ASCII. Normy Mezinárodní organizace pro normalizaci ISO/IEC 646, Mezinárodního poradního sboru pro telefon a telegraf T.50 a Ecma International ECMA-6 popisují pravidla pro vytváření sedmibitových národních kódování na bázi kódu ASCII. Podle těchto pravidel lze některé v textech málo používané speciální znaky nahradit národními znaky a tak rozšířit základní latinskou abecedu nejvýše o 10 písmen. Kromě toho je možné několik speciálních znaků nahradit speciálními znaky používanými v příslušném jazyce. Toto řešení neposkytuje dostatek znaků potřebných pro češtinu. V jazycích, které tolik znaků nepotřebují (např. němčina), je sice vhodné pro běžné texty, ale kvůli nahrazení speciálních znaků (především hranatých a složených závorek, svislé čáry a zpětného lomítka) znaky s diakritikou mění zápis programů v nesrozumitelnou změť znaků. Řada programovacích jazyků umožňuje nahradit chybějící znaky posloupnostmi běžnějších znaků, vhodnějším řešením je používání osmibitových kódování, které přebírají prvních 128 kódů z ASCII, nebo používání Unicode.

Pro češtinu a se používala celá řada osmibitových kódování; většího rozšíření dosáhla následující:

kódování komentář
ISO 8859-2 (ISO Latin 2) Standard ISO používaný pouze v unixových operačních systémech, v elektronické poště a v menší míře na WWW.
Windows-1250 Kód používaný firmou Microsoft v operačních systémech Windows pro kódování středoevropských jazyků (i ve Windows 7 a 8).
CP852 (PC Latin2) Kód vytvořený firmou IBM používaný např. v operačním systému DOS.
Mac CE Kód používaný firmou Apple pro středoevropské jazyky v operačním systému MacOS.
Kód Kamenických Oblíbené neoficiální kódování používané v DOSu pro potřeby češtiny a slovenštiny.
KOI8-ČS Nejstarší kódování češtiny a slovenštiny definované československou státní normou ČSN 36 9103 pro řadu počítačů JSEP.
Kódování Cork Kódování fontů používané programem TeX.

Nedostatkem kódování KOI-8čs byla jeho použitelnost pouze pro češtinu a slovenštinu. Kódování ISO 8859-2 ISO mělo teoreticky před nástupem Unicode představovat preferované kódování pro jazyky střední a východní Evropy. Protože převládající operační systémy používaly jiná kódování (MS-DOS kódovou stránku CP852, Windows kódování Windows-1250 a MacOS kódování Mac CE), bylo ISO 8859-2 v praxi používáno pouze v unixových operačních systémech, v elektronické poště a v menší míře na WWW.

Kódování Windows-1250 (někdy označované též CP1250) se v několika znacích liší od ISO 8859-2; naneštěstí pro češtinu se jedná o často používané znaky Š, š, Ž, ž a znaky Ť, ť a slovenské Ľ a ľ. Kódování CP-852 používané primárně v DOSu využívají dodnes česká Windows při zadávání speciálních znaků pomocí alt-kódů. Pokud se například po stisknutí klávesy Alt na numerické klávesnici vyťuká číslo 248 a pak se klávesa Alt pustí, objeví se na obrazovce znak ° pro stupeň, který má v tabulce znaků kód 248 (hexadecimálně F8).

Kód Kamenických (též KEYBCS2) je neoficiální kódování používané v DOSu pro potřeby češtiny a slovenštiny. Rozšířilo se díky ovladači klávesnice a programu pro nastavení znaků na adaptérech EGA a VGA, které dodávalo JZD Slušovice s počítači PC, a také díky tomu, že zachovávalo všechny semigrafické znaky, které se používaly pro vytváření rámečků a tabulek v textových režimech. Navíc na počítačích, jejichž videoadaptéry neumožňovaly změnu znakové sady, se při použití tohoto kódování místo chybějících českých znaků zobrazovaly tvarově podobné znaky.

Kódy českých a slovenských znaků

[editovat | editovat zdroj]

Následující tabulka shrnuje kódy českých a slovenských znaků s diakritikou v různých standardech:

Kódování ISO8859-2 Windows-1250 CP852 Kamenických Mac CE Cork UTF-8 UTF-16 BE
Znak dec hex dec hex dec hex dec hex dec hex dec hex dec hex dec hex
Á 193 C1 193 C1 181 B5 143 8F 231 E7 193 C1 195 129 C3 A1 0 193 00 C1
Ä 196 C4 196 C4 142 8E 142 8E 128 80 196 C4 195 132 C3 84 0 196 00 C4
Č 200 C8 200 C8 172 AC 128 80 137 89 131 83 196 140 C4 8C 1 12 01 0C
Ď 207 CF 207 CF 210 D2 133 85 145 91 132 84 196 142 C4 8E 1 14 01 0E
É 201 C9 201 C9 144 90 144 90 131 83 201 C9 195 137 C3 A9 0 201 00 C9
Ě 204 CC 204 CC 183 B7 137 89 157 9D 133 85 196 154 C4 9A 1 26 01 1A
Í 205 CD 205 CD 214 D6 139 8B 234 EA 205 CD 195 141 C3 8D 0 205 00 CD
Ĺ 197 C5 197 C5 145 91 138 8A 189 BD 136 88 196 185 C4 B9 1 57 01 39
Ľ 165 A5 188 BC 149 95 156 9C 187 BB 137 89 196 189 C4 BD 1 61 01 3D
Ň 210 D2 210 D2 213 D5 165 A5 197 C5 140 8C 197 135 C5 87 1 71 01 47
Ó 211 D3 211 D3 224 E0 149 95 238 EE 211 D3 195 147 C3 93 0 211 00 D3
Ô 212 D4 212 D4 226 E2 167 A7 239 EF 212 D4 195 148 C3 94 0 212 00 D4
Ö 214 D6 214 D6 153 99 153 99 133 85 214 D6 195 150 C3 96 0 214 00 D6
Ŕ 192 C0 192 C0 232 E8 171 AB 217 D9 143 CF 197 148 C5 94 1 84 01 54
Ř 216 D8 216 D8 252 FC 158 9E 219 DB 193 C1 197 152 C5 98 1 88 01 58
Š 169 A9 138 8A 230 E6 155 9B 225 E1 145 92 197 160 C5 A0 1 96 01 60
Ť 171 AB 141 8D 155 9B 134 86 232 E8 147 94 197 164 C5 A4 1 100 01 64
Ú 218 DA 218 DA 233 E9 151 97 242 F2 218 DA 195 154 C3 9A 0 218 00 DA
Ů 217 D9 217 D9 222 DE 166 A6 241 F1 151 97 197 174 C5 AE 1 110 01 6E
Ü 220 DC 220 DC 154 9A 154 9A 134 86 220 DC 195 156 C3 9C 0 220 00 DC
Ý 221 DD 221 DD 237 ED 157 9D 248 F8 221 DD 195 157 C3 9D 0 221 00 DD
Ž 174 AE 142 8E 166 A6 146 92 235 EB 154 9A 197 189 C5 BD 1 125 01 7D
á 225 E1 225 E1 160 A0 160 A0 135 87 225 E1 195 161 C3 A1 0 225 00 E1
ä 228 E4 228 E4 132 84 132 84 138 8A 228 E4 195 164 C3 A4 0 228 00 E4
č 232 E8 232 E8 159 9F 135 87 139 8B 163 A3 196 141 C4 8D 1 13 01 0D
ď 239 EF 239 EF 212 D4 131 83 147 93 165 A5 196 143 C4 8F 1 15 01 0F
é 233 E9 233 E9 130 82 130 82 142 8E 233 E9 195 169 C3 A9 0 233 00 E9
ě 236 EC 236 EC 216 D8 136 88 158 9E 165 A5 196 155 C4 9B 1 27 01 1B
í 237 ED 237 ED 161 A1 161 A1 146 92 237 ED 195 173 C3 AD 0 237 00 ED
ĺ 229 E5 229 E5 146 92 141 8D 190 BE 168 A8 196 186 C4 BA 1 58 01 3A
ľ 181 B5 190 BE 150 96 140 8C 188 BC 169 A9 196 190 C4 BE 1 62 01 3E
ň 242 F2 242 F2 229 E5 164 A4 203 CB 172 AC 197 136 C5 88 1 72 01 48
ó 243 F3 243 F3 162 A2 162 A2 151 97 243 F3 195 179 C3 B3 0 243 00 F3
ô 244 F4 244 F4 147 93 147 93 153 99 244 F4 195 180 C3 B4 0 244 00 F4
ö 246 F6 246 F6 148 94 148 94 154 9A 246 F6 195 182 C3 B6 0 246 00 F6
ŕ 224 E0 224 E0 234 EA 170 AA 218 DA 175 AF 197 149 C5 95 1 85 01 55
ř 248 F8 248 F8 253 FD 169 A9 222 DE 176 B0 197 153 C5 99 1 89 01 59
š 185 B9 154 9A 231 E7 168 A8 228 E4 178 B2 197 161 C5 A1 1 97 01 61
ť 187 BB 157 9D 156 9C 159 9F 233 E9 180 B4 197 165 C5 A5 1 101 01 65
ú 250 FA 250 FA 163 A3 163 A3 156 9C 250 FA 195 186 C3 BA 0 250 00 FA
ů 249 F9 249 F9 133 85 150 96 243 F3 183 B7 197 175 C5 AF 1 111 01 6F
ü 252 FC 252 FC 129 81 129 81 159 9F 252 FC 195 188 C3 BC 0 252 00 FC
ý 253 FD 253 FD 236 EC 152 98 249 F9 253 FD 195 189 C3 BD 0 253 00 FD
ž 190 BE 158 9E 167 A7 145 91 236 EC 186 BA 197 190 C5 BE 1 126 01 7E
  1. ČSN 36 9103. Systémy zpracování informací. 8bitové kódované soubory symbolů. 3. prosince 1979.

Související články

[editovat | editovat zdroj]

Externí odkazy

[editovat | editovat zdroj]