Kódování češtiny
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
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, dž 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ů
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 81 | 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 89 | 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 |
Odkazy
Reference
- ČSN 36 9103. Systémy zpracování informací. 8bitové kódované soubory symbolů. 3. prosince 1979.
Související články
Externí odkazy
- Přehled kódování češtiny na webu www.cestina.cz
- Proč právě ISO-8859-2? na webu www.cestina.cz
- The Czech and Slovak Character Encoding Mess Explained Lukase Petrlika
- Převodníky kódování češtiny
- IANA Registry of Character Sets