Nahlédněte i do Diskuse pod čarou!
Přes veškerou snahu o přesnost nelze tento přehled kódování (přesněji "znakových sad") použitelných pro psaní českých textů považovat za žádný oficiální ba ani úplný přehled, veškeré připomínky či opravy jsou vítány.
Informace o Unicode hledejte zde.
1. Slovní popis, historie, registrované názvy znakových sad a ukázky textu
- ASCII (a stručný popis registrací u IANA)
- Grafické znázornění ukázky
- ISO-8859-2
- Bratři Kameničtí
- Cork
- CP852
- East8
- ICL
- KOI8-ČS
- Mac OS Central European
- Windows-1250
- ISO-8859-1 (znaková sada nepoužitelná pro češtinu)
2. Přesné tabulky znakových sad (na samostatných stránách)
- Tabulky znakových sad do Unicode (nejlepší)
- Tabulky dvojznaků v ASCII
- Tabulky k nahlédnutí přímo v HTML (externí odkaz)
(Očekává se, že váš prohlížeč umí UTF8, jinak vám poslouží jen otisky v obrázku)3. Obecné informace
- Česká abeceda a kódy češtiny
- Slovenská abeceda a kódy slovenštiny
- Tabulka anglických a českých jmen diakritických znamének
- Norma ČSN 36 9103 (na samostatné stránce)
4. Poděkování
5. Použité zdroje informací
Znaková sada US-ASCII samozřejmě nesplňuje potřeby českého jazyka, protože na svých sedmi definovaných bitech kóduje pouze velká a malá nediakritická písmena latinské abecedy, číslice, další běžné grafické symboly a několik řídicích kódů (skok na nový řádek ap.). Uvádím ji na tomto místě spíše pro úplnost. Význam znakového standardu ASCII ovšem dokládá existence a činnost ASCII Konsorcia.
ASCII je výchozí znakovou sadou pro většinu znakových sad a rovněž se v ní zapisují všechny registrované názvy znakových sad. Než může být totiž jméno znakové sady použito pro označení dokumentů v internetu, musí projít řádnou registrací u IANA. Registrace obsahuje všechny používané názvy znakové sady a navíc specifikuje preferované označení v MIME, tedy název, kterým je nejvhodnější označovat např. zprávy elektronické pošty nebo HTML dokumenty.
Seznam všech registrovaných znakových sad je k dispozici na adrese ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets nebo v geograficky bližším zrcadle ve Švýcarsku.
V tomto přehledu budu příslušné registrace u IANA citovat (jsou-li znakové sady vůbec registrovány), protože u řádně registrovaných sad není pochyb o názvu, jakým je označovat. Chtěl bych přesto zdůraznit, že registrování znakových sad nemá za cíl "posvětit" každému jeho vlastní znakovou sadu, nýbrž usnadnit orientaci v zmatku, který se již vyrobil. Je v zájmu všech uživatelů internetu shodnout se na co nejmenším počtu standardů. V otázce kódování českých textů jeden takový standard existuje. Zde si můžete přečíst několik argumentů, proč se mi právě znaková sada ISO-8859-2 jeví tou ideální.
Registrace znakové sady ASCII u IANA:
Name: ANSI_X3.4-1968 Reference: RFC1345 MIBenum: 3 Source: ECMA registry Alias: iso-ir-6 Alias: ANSI_X3.4-1986 Alias: ISO_646.irv:1991 Alias: ASCII Alias: ISO646-US Alias: US-ASCII (preferred MIME name) Alias: us Alias: IBM367 Alias: cp367 Alias: csASCII
- takhle by měl vypadat alespoň některý z následujících odstavců.
<>< >>< ISO Latin 2 je specifikováno normou ISO-8859-2 (z roku 1987), která jej doporučuje používat pro současnou albánštinu, angličtinu, češtinu, chorvatštinu, maďarštinu, němčinu, polštinu, rumunštinu, slovenštinu a slovinštinu. Je používáno na systémech Unix a dalších Příjemných systémech. (Kódová stránka s označením IBM 912 je shodná s ISO-8859-2.)
Zde je úplný přehled diakritických znaků znakové sady ISO-8859-2:
,^u" , v v- , "v ,^ /v, ,v ,^"" ,v ,v v o,"" , ,v. AAAAAABCCCCDDDEEEEEFGHIIIJKLLLLMNNNOOOOOPQRRRSSSSTTTUUUUUVWXYYZZZZ ' ' ' ' 'ČSN 369103 definuje kódování KOI-8 L2, které je téměř shodné s ISO-8859-2. Toto kódování je registrováno jako ISO pod číslem 139.
Výhody použití této znakové sady pro přenos dokumentů v internetu jsou shrnuty na této stránce.
Registrace znakové sady ISO-8859-2 u IANA:
Name: ISO_8859-2:1987 Reference: RFC1345 MIBenum: 5 Source: ECMA registry Alias: iso-ir-101 Alias: ISO_8859-2 Alias: ISO-8859-2 (preferred MIME name) Alias: latin2 Alias: l2 Alias: csISOLatin2Přesné složení znakové sady najdete v tabulce do Unicode nebo v tabulce dvojznaků.
<>< >>< Kódování bratrů Kamenických (též KEYBCS2) se používá na IBM kompatibilních počítačích. Je stanoveno chováním veřejně přístupného programu "KEYBCS2", jehož autory jsou právě bratři Kameničtí. Donedávna bylo nejoblíbenějším kódováním na PC vůbec, neboť zachovává veškeré grafické symboly. Mnoho tiskáren umí tisknout texty kódované v Kamenických, uživatelé FidoNETu a mnoho dalších je stále používá.
Přestože PC-L2 (852) bylo definováno dříve než MJK, bylo MJK donedávna užíváno a oblíbeno více, hlavně díky jeho vlastnostem na monitorech HGC a CGA a také díky osobní podpoře autorů pro firmy, které tehdy dodávaly počítače na náš trh (Olivetti) a které se samy otázkou češtiny vůbec nezabývaly. Poté, co IBM a Microsoft začaly hojně užívat CP852 (PC Latin 2), situace se pomalu přiblížila přijetí PC Latin 2.
Někteří z českých výrobců (např. první lokalizace FoxPro) nazývají kódování Kamenických kódovou stránkou CP895, nicméně tato stránka není specifikována ani IBM, ani Microsoftem. (Podle dopisu Jana Tomana <janto@microsoft.com> neexistuje specifikace CP895.) Některé programy podporují CP852 (PC Latin 2) i CP895 (Kameničtí).
Znaková sada bří. Kamenických není registrována u IANA, je proto problematické najít jednoznačné jméno této znakové sady.
Přesné složení znakové sady najdete v tabulce dvojznaků.
Kódování Cork (rovněž T1) používá většina evropských TUG (národní TeX Users Groups) pro TeXovské mezinárodní písmo T1. Kódování bylo definováno v roce 1990 na setkání TUG v Corku. Rodina písem TeX DC je kódována podle T1.
Toto kódování není doplňkem ASCII, neboť obsahuje tisknutelné znaky již na nejnižších pozicích (0 - 31), které ASCII používá pro řídící znaky.
Znaková sada Cork není registrována u IANA.
Přesné složení znakové sady najdete v tabulce dvojznaků.
<>< >>< Kódování PC Latin 2 (zkráceně PC L2) se používá na PC. Většina současných programů pro DOS a OS/2 je podporují, neboť IBM a Microsoft ho definovali jako kódovou stránku CP852 a taktéž ČSN 36 9103 jeho používání na PC doporučuje. Toto kódování má všechny tisknutelné znaky sady ISO-8859-2 (ISO Latin 2), diakritická písmenka jsou však na jiných pozicích.
Manuály k MS DOSu pojmenovávají CP852 jako "Slavic (Latin II)", ačkoli některé z jazyků, jejichž potřeby CP852 pokrývá, se mezi slovanské jazyky neřadí (např. maďarština).
Většina českých a slovenských uživatelů zná toto kódování pouze pod názvem Latin 2 a ani netuší, jak moc se PC Latin 2 a ISO Latin 2 liší.
Registrace znakové sady CP852 u IANA; bohužel nespecifikuje preferované označení v MIME:
Name: IBM852 Reference: RFC1345 MIBenum: 2010 Source: IBM NLS RM Vol2 SE09-8002-01, March 1990 Alias: cp852 Alias: 852 Alias: csPCp852Přesné složení znakové sady najdete v tabulce do Unicode nebo v tabulce dvojznaků.
East8 používala kdysi firma HP u svých zařízení (a možná jej dosud interně používá).Ing. Jiří KuchtaZnaková sada East8 není registrována u IANA.
Rovněž bohužel nemám k dispozici žádné tabulky charakterizující tuto znakovou sadu.
ICL je varianta PC kódování, která měla česká písmena místo řeckých, dnes naštěstí vyhynula (ze známějších produktů to používal textový editor CSED).Ing. Jiří KuchtaZnaková sada ICL není registrována u IANA.
Rovněž bohužel nemám k dispozici žádné tabulky charakterizující tuto znakovou sadu.
<>< >>< Toto kódování definuje norma ČSN 36 9103. Obsahuje "ch" a "CH" v podobě zvláštních znaků (v souladu s českou abecedou) a většinu diakritických písmen lze získat pouhým nastavením osmého bitu. Toto kódování bylo používáno na starých terminálech a v současné době se zdá být mrtvé. Některé dobře známé programy (např. T602) však stále dovolují jeho používání.
Registrace u IANA; bohužel nespecifikuje preferované označení v MIME, registrované jméno je navíc nejednoznačné, neboť norma ČSN 369103 definuje celkem šest různých znakových sad:
Name: CSN_369103 Reference: RFC1345 MIBenum: 86 Source: ECMA registry Alias: iso-ir-139 Alias: csISO139CSN369103Přesné složení znakové sady najdete v tabulce dvojznaků.
<>< >>< Tuto znakovou sadu používá lokalizovaný Mac OS (především počítače Apple Macintosh).
Všechna písma s koncovkou CE (např. Times CE) jsou pod Mac OS v tomto kódování. (Nelze zaměňovat s písmy CE pod Windows, kde se používá striktně CP1250.) Písma pro Macintosh bez této koncovky používají kódování Mac Roman, které žádné specificky české znaky (č, ř) neobsahuje. Podrobněji lze obě znakové sady prostudovat v tabulkách do Unicode.
Znaková sada Mac OS CE není registrována u IANA, je proto problematické najít jednoznačné jméno této znakové sady.
Klub přátel počítačů Macintosh iniciuje registraci této znakové sady, ještě však není jasné, jaký by měl být její výchozí název. V úvahu přicházejí dvě varianty:
- 1.
apple-ce
- v praxi na tento název již reaguje Netscape
- 2.
mac-ce
- coby registrovaná podoba mého neoficiálního návrhu
x-mac-ce
Přesné složení znakové sady najdete v tabulce do Unicode nebo v tabulce dvojznaků.
<>< >>< MS Windows (3.1, WfW, W95 a NT) ve verzi CS, EE a verzích pro Maďarsko a Polsko používají kódování CP1250, které obsahuje všechny tisknutelné znaky sady ISO Latin 2, čtrnáct znaků je však na jiných pozicích (z toho osm se používá v češtině a slovenštině). Kódy v rozsahu 128 až 159 obsahují rovněž tisknutelné znaky (jedná se o oblast C1, kterou kódování ISO Latin 2 a další kódování normy ISO 2022 vyhrazují pro řídící znaky).
Není tedy pravda, že CP1250 je (jednosměrně) zaměnitelná s ISO-8859-2. (Rozdíl je patrný např. u "š")
Kuloární informace o vzniku kódování Windows-1250 naleznete na konci stránky o tom, proč používat ISO-8859-2.
Registrace znakové sady Windows-1250 u IANA; vzhledem k tomu, že definuje jediný název této znakové sady, je logicky v označování podle MIME používán výhradně tento název:
Name: windows-1250 MIBenum: 2250 Source: Microsoft (see ../character-set-info/windows-1250) [Lazhintseva] Alias:Přesné složení znakové sady najdete v tabulce do Unicode nebo v tabulce dvojznaků.
<>< >>< Kódování ISO-8859-1 neobsahuje všechny potřebné české znaky, pouze některá mezinárodní písmenka mají shodný (podobný) vzhled s některými písmenky používanými i v češtině - především se jedná o dlouhé á, é ap. Této částečné podobnosti lze občas využít a napsat alespoň "cástecne" český text. Zde je úplný přehled diakritických znaků znakové sady ISO-8859-1:
\,^~"oA - \,^" \,^" ~ \,^"~/ S \,"^ ," | AAAAAAAEBCCDDEEEEEFGHIIIIIJKLMNNOOOOOOOPQRSSTUUUUUVWXYYYZO 'Mnoho programů platformy Mac OS obsahuje konverzní tabulky
Mac->ISO
aISO->Mac
. Tyto tabulky však vycházejí z kódování Mac Roman (známé z mezinárodních písem, obsahuje znaky jako promile ap.) a jsou plnohodnotně zvratné (žádný kód se po převodu tam a zpět nestává duplicitní, nejednoznačný). K přenosu z Maca na Maca je tedy lze tento převod bez viditelných potíží použít, přenášený dokument je však kódován částečně nesmyslně a částečně podle skutečné ISO-8859-1 (správně jsou ty znaky, které lze na Macovi napsat s nastavenou klávesnicí Czech, tj. použít výběr z českých znaků existujících i v kódování Roman a jinak užít znaků z ASCII). Nešvarem mnoha mezinárodních programů, je bezmyšlenkovité použití této tabulky na všechny textové dokumenty. Jak programy rozšířit nebo upravit, aby podporovaly nějakou rozumnější tabulku, se dozvíte v sekci Počešťování Mac OS.Stejným problémem trpí i řada hloupějších programů pro Windows. Opět bezmyšlenkovitě použijí konverzní tabulku z nečeské znakové sady používané v mezinárodních verzích Windows do ISO-8859-1. Pokud se na takto pokažený text použije při čtení inverzní tabulka, bude text zdánlivě nepoškozen. Ve skutečnosti je však řada znaků (všechna typicky česká písmenka a další symboly) během přenosu kódována naprosto nesmyslně a nedefinovaně. Pokud by tedy taková zpráva byla přijata hloupým programem pro Mac OS z odstavce výše, budou správně zobrazeny pouze "mezinárodnější" diakritické znaky (dlouhé á, é ap.).
Pro úplnost ještě registrace znakové sady ISO-8859-1 u IANA:
Name: ISO_8859-1:1987 Reference: RFC1345 MIBenum: 4 Source: ECMA registry Alias: iso-ir-100 Alias: ISO_8859-1 Alias: ISO-8859-1 (preferred MIME name) Alias: latin1 Alias: l1 Alias: IBM819 Alias: CP819 Alias: csISOLatin1Přesné složení znakové sady najdete v tabulce do Unicode.
a a' b c c< d d< e e' e< f g h ch i i' j k l m n n< o o' p q r r< s s< t t< u u' u0 v w x y y' z z<Spřežka "ch" je považována za jedno písmeno.
České znaky "r<", "e<" a "u0" se ve slovenštině nepoužívají.
Kód českého jazyka je podle ISO 639 "cs". Dvoupísmenný kód České republiky je podle normy ISO 3166 "CZ". (Povšimněte si, že podle konvence norem ISO 639 a ISO 3166 jsou kódy jazyků psány malými a kódy států velkými písmeny.)
a a' a: b c c< d d< dz dz< e e' f g h ch i i' j k l l' l< m n n< o o' o> p q r r' s s< t t< u u' v w x y y' z z<Spřežky "ch", "dz" a "dz<" jsou považovány za samostatná písmena.
Slovenské znaky "a:", "o>", "r'", "l'" a "l<" se v češtině nepoužívají.
Kód slovenského jazyka je podle ISO 639 "sk". Dvoupísmenný kód Slovenska je podle normy ISO 3166 "SK".
English name Czech Name (CSN 36 9103) ---------------------------------------------------------------------- acute accent ......... carka nad pismenem, silny prizvuk (c<A'RKA nad pi'smenem, silny' pr<i'zvuk) breve ................ breve caron ................ hacek (ha'c<ek) cedilla .............. hacek pod pismenem, cedilie (ha'c<ek pod pi'smenem, cedilie) circumflex accent .... vokan (voka'n<) diaeresis ............ dve tecky nad pismenem, prehlaska (dve< tec<ky nad pi'smenem, pr<ehla'ska) dot above ............ tecka nad pismenem (tec<ka nad pi'smenem) double acute accent .. dvojcarka (dvojc<a'rka) ogonek ............... ocasek (oca'sek) ring above ........... krouzek nad pismenem (krouz<ek nad pi'smenem) stroke ............... preskrtnuti (pres<krtnuti')[Chybí: jména slovenských znamének]
Tento přehled kódování používaných pro zápis českých textů vznikl sloučením mé původní stránky s obsahem
cs-encodings-faq
Lukáše Petrlíka, kterému tímto děkuji za velmi cenné informace (dvojznakové tabulky znakových sad a podrobný popis kódování Kamenických (CP 859), CP 852 (PC Latin 2), ISO Latin 2, KOI-8 CS2,CP1250 (MS Windows CS a EE) a Cork).Rovněž bych chtěl poděkovat Ing. Jiřímu Kuchtovi za stručné informace ke kódování East8 a ICL.
Ondřej Bojar
cs-encodings-faq Lukáše Petrlíka.
ČSN 36 9103. Information processing: 8-bit code for information interchange. Vydavatelství norem Praha, 1989.
Gašpaříková, Z. - Kamis, A.: Slovensko-český slovník. SPN Praha 1987.
IBM: IBM OS/2 Warp 4. Klavesnice a kodove stranky. (Keyboards and Code Pages.) IBM, 1996.
D. E. Knuth: The TeXbook. Addison Wesley, Reading, Massachusetts, 1986.
Lamport, L.: LaTeX. Addison - Wesley, Reading, Massachusetts, 1986.
List of IANA Registered Character Sets.
RFC 1345. Character Mnemonics & Character Sets. [Tabulky pro ISO Latin 2, PC Latin 2 a KOI-8 L2 (CSN_369103).]
The cp1250_WinLatin2 to Unicode table, 2.00.
The MacOS_CentralEurope to Unicode table, 0.2. [Tato tabulka obsahuje i slovní popis kódu.]