ISO/IEC 8859 je mezinárodní norma definující 15 osmibitových znakových sad, kterou společně vydala a udržovala Mezinárodní organizace pro normalizaci (ISO) a Mezinárodní elektrotechnická komise (IEC). Každá sada je definována jednou očíslovanou částí – ISO/IEC 8859-1 až ISO/IEC 8859-16; ISO/IEC 8859-12 nebylo vydáno. Vzhledem k očekávanému přechodu na ISO/IEC 10646 se vývoj ISO/IEC 8859 považuje za ukončený, a pracovní skupina byla rozpuštěna.
Části 1, 2, 3 a 4 ISO/IEC 8859 byly původně standardem ECMA-94 organizace Ecma International.
Úvod Nejstarší znakové kódy byly z historických důvodů a kvůli omezení některých přenosových datových protokolů omezené na 7 bitů. 95 tisknutelných znaků ASCII stačí pro vyměnu informací v moderní angličtině, většina jiných jazyků používajících latinku však potřebuje další symboly, které nejsou součástí ASCII. ISO/IEC 8859 řeší toto problém využitím osmého bitu v osmibitovém bytu, což poskytuje prostor pro dalších 96 tisknutelných znaků v oblasti G1. Kvůli tomu, že různé jazyky používají různá diakritická znaménka, je celkový počet znaků s diakritikou větší, než kolik se vejde do jednoho osmibitového znakového kódu. Proto bylo vytvořeno několik kódování, z nichž 10 je určeno pro různé varianty latinky.
Norma ISO/IEC 8859-n definuje pouze tisknutelné znaky v oblasti G1 a byla navržena tak, aby mohla být používána ve spojení s řídicí znaky mapovanými na nepřiřazené kódy. Za tímto účelem řada kódování registrovaných organizací IANA přidává sadu řídicích znaků C0 (řídicí znaky mapované na kódy 0 až 31) z ISO/IEC 646 a sadu řídicích znaků C1 (s kódy 128 až 159) z ISO 6429, což dává osmibitové kódování, ve kterém je většina nebo všechny kódy přiřazené. Upřednostňované MIME jméno nebo kanonické jméno (pokud upřednostňované MIME jméno není zadané) těchto kódování je ISO-8859-n. Mnoho lidé používá termíny ISO/IEC 8859-n a ISO-8859-n jako synonyma. Pouze kódování ISO/IEC 8859-11 nebylo přiřazeno takovéto jméno znakové sady, pravděpodobně kvůli tomu, že je téměř identické s TIS 620.
Znaky Norma ISO/IEC 8859 byla navržena pro spolehlivou výměnu informací, nikoli pro typografii; proto neobsahuje všechny symboly potřebné pro vysoce kvalitní typografii, jako například nepovinné slitky, uvozovky, lomítka, atd. Sázecí systémy kvůli tomu často používají proprietární rozšíření ASCII (např. kódování Cork v sázecím programu TeX) nebo ISO/IEC 8859 nebo Unicode.
Základním pravidlem bylo, že do kódování nebyly zařazeny znaky nebo symboly, které nebyly částí široce používané znakové sady pro zpracování dat a nevyskytovaly se na klávesnici psacích strojů pro příslušný jazyk. Proto se do kódování dostaly uvozovky tvaru dvojitých šipek « a » používané některými evropskými jazyky, ale nikoli dvojité uvozovky „ a “ používané v angličtině a některých jiných jazycích. Do kódování nebyly zahrnuty slitky œ a Œ používané ve francouzštině, protože je lze psát jako 'oe'. Bylo také vynecháno Ÿ, potřebné pouze pro texty psané velkými písmeny. Tyto znaky však byly zahrnuty později do ISO/IEC 8859-15, které také obsahuje nový znak Eura €. Podobně nebyla zahrnuta písmena 'ij' a 'IJ' používaná v nizozemštině, protože Nizozemci si zvykli je psát jako dvě písmena. Pro rumunštinu nebyly zařazeny znaky a (s čárkou) pod písmenem, protože je Unicode Consortium zpočátku považovalo za varianty znaků a (s cedillou). Písmena s čárkou pod znakem byla později přidána do standardu Unicode a jsou také v ISO/IEC 8859-16.
Většina kódování ISO/IEC 8859 obsahuje znaky diakritikou potřebné pro různé evropské jazyky používající latinku. Ostatní obsahují nelatinkové abecedy: řeckou abecedu, cyrilici, hebrejskou abecedu, arabskou abecedu a thajské písmo. Většina kódování obsahuje pouze samostatné znaky, přestože thajština, hebrejština a arabština používají i kombinační znaky. Norma však neobsahuje podporu východoasijských písem (CJK), protože jejich ideografická písma vyžadují tisíce kódových bodů. Zahrnuta není ani vietnamština, která sice používá latinku, ale má tolik znaků s diakritikou, že se nevejde se do 96 pozic (bez použití kombinační diakritiky). Obě japonské hláskové abecedy (hiragana a katakana, viz Kana) by se do tohoto počtu vešly, ale zakódované v ISO/IEC 8859 také nejsou.
Části ISO/IEC 8859 Norma ISO/IEC 8859 je rozdělena na následující části: Část Název JazykyISO/IEC 8859-1Latin-1 Western EuropeanPravděpodobně nejpoužívanější část ISO/IEC 8859, pokrývající většinu západoevropských jazyků: dánštinu (částečně)Chybí několik samohlásek s diakritikou včetně Ǿ a ǿ, které mohou být nahrazeny znaky bez diakritiky za cenu zvětšené nejednoznačnosti., nizozemštinu (částečně)Chybí písmeno IJ/ij, které se obvykle zapisuje jako IJ., angličtinu, faerštinu, finštinu (částečně)Chybějící znaky jsou v ISO/IEC 8859-15., francouzštinu (částečně), němčinu, islandštinu, irštinu, italštinu, norštinu, portugalštinu, rétorománštinu, skotskou gaelštinu, španělštinu, katalánštinu a švédštinu. Podporuje i některé jazyky mimo západní Evropu: východoevropskou albánštinu, jihovýchodoasijskou indonéštinu, africké jazyky afrikánštinu a svahilštinu. Chybějící znak Eura a velké Ÿ jsou v revidované verzi ISO/IEC 8859-15 (viz níže). Odpovídající znaková sada IANA je ISO-8859-1.ISO/IEC 8859-2Latin-2 Cental EuropeanPodporuje následující středo- a východoevropské jazyky, které používají latinku, včetně bosenštiny, polštiny, chorvatštiny, češtiny, slovenštiny, slovinštiny, srbštiny a maďarštiny. Chybějící znak Eura lze nalézt ve verzi ISO/IEC 8859-16.ISO/IEC 8859-3Latin-3 South EuropeanTurečtina, maltština a esperanto. Z větší části nahrazeno novější verzí ISO/IEC 8859-9 pro turečtinu a Unicodem pro esperanto.ISO/IEC 8859-4Latin-4 North EuropeanEstonština, lotyština, litevština, grónština a sámské jazyky.ISO/IEC 8859-5Latin/CyrillicPokrývá většinou slovanských jazyků, které používají cyrilici, včetně běloruštiny, bulharštiny, makedonštiny, ruštiny, srbštiny a (částečně) ukrajinštinyV 8859-5 chybí písmeno Ґ/ґ, které bylo vráceno do ukrajinské abecedy v roce 1990..ISO/IEC 8859-6Latin/ArabicPokrývá nejobvyklejší arabské znaky. Nepodporuje jiné jazyky používající arabské písmo. Pro zobrazování vyžaduje podporu obousměrného textu a kurzivní spojování.ISO/IEC 8859-7Latin/GreekPokrývá moderní řečtinu (monotonní pravopis). Může být také použito pro starou řečtinu psanou bez diakritiky nebo monotonním pravopisem, ale nemá znaky s diakritikou pro polytonní pravopis, které jsou součástí Unicode.ISO/IEC 8859-8Latin/HebrewPokrývá moderní hebrejskou abecedu, jak je používána v Izraeli. V praxi existují dvě různá kódování, logické pořadí (vyžaduje podporu obousměrného textu pro zobrazování) a vizuální (zleva doprava) pořadí (ve výsledku, po zpracování obousměrného textu a řádkovém zlomu).ISO/IEC 8859-9Latin-5 TurkishZ větší části totožná s ISO/IEC 8859-1, ale nahrazuje zřídka používaná islandská písmena za turecká.ISO/IEC 8859-10Latin-6 NordicPřepracování kódu Latin-4. Považuje se za užitečnější pro severské jazyky. Pro baltské jazyky se více používá Latin-4.ISO/IEC 8859-11Latin/ThaiObsahuje znaky potřebné pro thajštinu. Téměř identické s TIS 620.ISO/IEC 8859-12Latin/DevanagariPráce na části 8859 pro Dévanágarí byla oficiálně ukončena v roce 1997. Dévanágarí je obsaženo v kódování ISCII a v Unicode/ISO/IEC 10646.ISO/IEC 8859-13Latin-7 Baltic RimDoplněny některé znaky pro baltské jazyky, které chyběly v Latin-4 a Latin-6.ISO/IEC 8859-14Latin-8 CelticPokrývá keltské jazyky jako například skotskou gaelštinu a bretonštinu.ISO/IEC 8859-15Latin-9Revize 8859-1, která nahradila některé málo používané symboly znakem Eura € a písmeny Š, š, Ž, ž, Œ, œ a Ÿ, které jsou potřebné pro francouzštinu, finštinu a estonštinu.ISO/IEC 8859-16Latin-10 South-Eastern EuropeanUrčena pro albánštinu, chorvatštinu, maďarštinu, italštinu, polštinu, rumunštinu a slovinštinu, ale také finštinu, francouzštinu, němčinu a irskou gaelštinu (nový pravopis). Klade větší důraz na písmena než na symboly. Znak měny je nahrazen znakem Eura.
Jednotlivé části ISO 8859 byly navrženy tak, aby podporovaly příbuzné jazyky, které používají stejná písmena s diakritikou, takže znaky potřebné pro jeden jazyk jsou obvykle obsaženy v jedné části. Existují však některé znaky a kombinace jazyků, které vyžadují přepínání mezi znakovými sadami podle ISO/IEC 2022. Standard byl vytvářen tak, aby konverze byly co nejjednodušší. Například všech sedm speciálních znaků používaných v němčině je ve všech variantách ISO/IEC 8859 (1–4, 9, 10, 13–16) na stejných pozicích a na mnoha pozicích se znaky v různých sadách liší pouze diakritickými znaménky. Speciálně varianty 1–4 byly navrženy společně a vyznačují se tím, že pokud se určitý znak vyskytuje ve více sadách, má ve všech stejný kód.
Tabulka +Porovnání jednotlivých kódování (1–16) ISO/IEC 8859DvojkověOctDecHex1234567891011131415161010 0000240160A0nezlomitelná mezera (NBSP)1010 0001241161A1¡ĄĦĄЁ ‘ ¡Ąก”Ḃ¡Ą1010 0010242162A2¢˘ĸЂ ’¢¢Ēข¢ḃ¢ą1010 0011243163A3£Ł£ŖЃ £Ģฃ£Ł1010 0100 244164A4¤Є¤€¤Īค¤Ċ€1010 0101245165A5¥Ľ ĨЅ ₯¥Ĩฅ„ċ¥„1010 0110246166A6¦ŚĤĻІ ¦Ķฆ¦ḊŠ1010 0111247167A7§Ї §ง§1010 1000250168A8¨Ј ¨ĻจØẀš1010 1001251169A9©ŠİŠЉ ©Đฉ©1010 1010252170AAªŞĒЊ ͺתŠชŖẂªȘ1010 1011253171AB«ŤĞĢЋ «Ŧซ«ḋ«1010 1100254172AC¬ŹĴŦЌ،¬Žฌ¬Ỳ¬Ź1010 1101255173ADměkké rozdělovací znaménko (SHY)ญSHY1010 1110256174AE®Ž ŽЎ ®Ūฎ®ź1010 1111257175AF¯Ż¯Џ ―¯ŊฏÆŸ¯Ż1011 0000260176B0°А °ฐ°Ḟ°1011 0001261177B1±ąħąБ ±ąฑ±ḟ±1011 0010262178B2²˛²˛В ²ēฒ²Ġ²Č1011 0011263179B3³ł³ŗГ ³ģณ³ġ³ł1011 0100264180B4´Д ΄´īด“ṀŽ1011 0101265181B5µľµĩЕ ΅µĩตµṁµ”1011 0110266182B6¶śĥļЖ Ά¶ķถ¶1011 0111267183B7·ˇ·ˇЗ ·ท·Ṗ·1011 1000270184B8¸И Έ¸ļธøẁž1011 1001271185B9¹šıšЙ Ή¹đน¹ṗ¹č1011 1010272186BAºşēК Ί÷ºšบŗẃºș1011 1011273187BB»ťğģЛ؛»ŧป»Ṡ»1011 1100274188BC¼źĵŧМ Ό¼žผ¼ỳŒ1011 1101275189BD½˝½ŊН ½―ฝ½Ẅœ1011 1110276190BE¾ž žО Ύ¾ūพ¾ẅŸ1011 1111277191BF¿żŋП؟Ώ ¿ŋฟæṡ¿ż1100 0000300192C0ÀŔÀĀР ΐ ÀĀภĄÀ1100 0001301193C1ÁСءΑ ÁมĮÁ1100 0010302194C2ÂТآΒ ÂยĀÂ1100 0011303195C3ÃĂ ÃУأΓ ÃรĆÃĂ1100 0100304196C4ÄФؤΔ ÄฤÄ1100 0101305197C5ÅĹĊÅХإΕ ÅลÅĆ1100 0110306198C6ÆĆĈÆЦئΖ ÆฦĘÆ1100 0111307199C7ÇĮЧاΗ ÇĮวĒÇ1100 1000310200C8ÈČÈČШبΘ ÈČศČÈ1100 1001311201C9ÉЩةΙ ÉษÉ1100 1010312202CAÊĘÊĘЪتΚ ÊĘสŹÊ1100 1011313203CBËЫثΛ ËหĖË1100 1100314204CCÌĚÌĖЬجΜ ÌĖฬĢÌ1100 1101315205CDÍЭحΝ ÍอĶÍ1100 1110316206CEÎЮخΞ ÎฮĪÎ1100 1111317207CFÏĎÏĪЯدΟ ÏฯĻÏDvojkověOctDecHex1234567891011131415161101 0000320208D0ÐĐ ĐаذΠ ĞÐะŠŴÐ1101 0001321209D1ÑŃÑŅбرΡ ÑŅัŃÑŃ1101 0010322210D2ÒŇÒŌвز ÒŌาŅÒ1101 0011323211D3ÓĶгسΣ ÓำÓ1101 0100324212D4ÔдشΤ ÔิŌÔ1101 0101325213D5ÕŐĠÕеصΥ ÕีŐ1101 0110326214D6ÖжضΦ ÖึÖ1101 0111327215D7×зطΧ ×Ũื×Ṫ׌1101 1000330216D8ØŘĜØиظΨ ØุŲØŰ1101 1001331217D9ÙŮÙŲйعΩ ÙŲูŁÙ1101 1010332218DAÚкغΪ ÚฺŚÚ1101 1011333219DBÛŰÛл Ϋ Û ŪÛ1101 1100334220DCÜм ά Ü Ü1101 1101335221DDÝŬŨн έ İÝ ŻÝĘ1101 1110336222DEÞŢŜŪо ή ŞÞ ŽŶÞȚ1101 1111337223DFßп ί‗ß฿ß1110 0000340224E0àŕàāрـΰאàāเąà1110 0001341225E1áсفαבáแįá1110 0010342226E2âтقβגâโāâ1110 0011343227E3ãă ãуكγדãใćãă1110 0100344228E4äфلδהäไä1110 0101345229E5åĺċåхمεוåๅåć1110 0110346230E6æćĉæцنζזæๆęæ1110 0111347231E7çįчهηחçį็ēç1110 1000350232E8èčèčшوθטèč่čè1110 1001351233E9éщىιיé้é1110 1010352234EAêęêęъيκךêę๊źê1110 1011353235EBëыًλכë๋ėë1110 1100354236ECìěìėьٌμלìė์ģì1110 1101355237EDíэٍνםíํķí1110 1110356238EEîюَξמî๎īî1110 1111357239EFïďïīяُοןï๏ļï1111 0000360240F0ðđ đ№ِπנğð๐šŵðđ1111 0001361241F1ñńñņёّρסñņ๑ńñń1111 0010362242F2òňòōђْςעòō๒ņò1111 0011363243F3óķѓ σףó๓ó1111 0100364244F4ôє τפô๔ōô1111 0101365245F5õőġõѕ υץõ๕ő1111 0110366246F6öі φצö๖ö1111 0111367247F7÷ї χק÷ũ๗÷ṫ÷ś1111 1000370248F8øřĝøј ψרø๘ųøű1111 1001371249F9ùůùųљ ωשùų๙łù1111 1010372250FAúњ ϊתú๚śú1111 1011373251FBûűûћ ϋ û๛ūû1111 1100374252FCüќ ό ü ü1111 1101375253FDýŭũ§ ύLRMıý żýę1111 1110376254FEþţŝūў ώRLMşþ žŷþț1111 1111377255FFÿ˙џ ÿĸ ’ÿDvojkověOctDecHex123456789101113141516
Na pozici 0xA0 je vždy nezlomitelná mezera, na pozici 0xAD je většinou měkké rozdělovací znaménko, který se zobrazuje pouze na koncích řádků.
Zeleně podbarvená pole jsou nepřiřazená.