ISO/IEC 646
ISO/IEC 646 (starsza nazwa: ISO 646) jest normą definiującą modyfikację 7-bitowego kodowania ASCII. Ustalono 10 pozycji, na których mogły być umieszczone znaki używane w języku kraju, który przyjął tę normę. Dodatkowo na dwóch innych pozycjach przewidziano alternatywne znaki walut.
Historia
[edytuj | edytuj kod]Pierwsze prace nad wprowadzeniem możliwości kodowania znaków narodowych z zachowaniem możliwie daleko idącej kompatybilności z istniejącymi systemami zostały podjęte przez ECMA w grudniu 1960 roku. Pierwsza wersja normy ECMA została wydana 30 kwietnia 1965 r. jako ECMA-6, została przyjęta przez CCITT jako Międzynarodowy Alfabet Telegraficzny nr 5, w 1972 roku została przyjęta przez ISO jako ISO-646. Przyjęto podstawową wersję (zwaną IRV – ang. International Reference Version, czyli Międzynarodową Wersję Wzorcową), a kraje, które przyjęły tę normę, mogły wprowadzać swoje modyfikacje wyznaczonych pozycji. Początkowo planowano, że IRV będzie całkowicie zgodna z istniejącym kodowaniem ASCII, ale (podobno pod naciskiem krajów komunistycznych [1]) w efekcie przyjęto, że w IRV znak dolara ($) na pozycji 0x24 zostanie zastąpiony uniwersalnym znakiem waluty (¤). Stąd pojawiła się konieczność stosowania oznaczenia US-ASCII, by uniknąć pomyłek. W trzeciej wersji tej normy, pochodzącej z roku 1991 (odpowiednik szóstej wersji normy ECMA-6), przywrócono zgodność IRV i US-ASCII.
Norma ISO 646 doczekała się dwukrotnej nowelizacji: w 1983 i 1991 roku.
Kodowania ISO 646 były stosowane w latach 70 i 80. W komputerach 8-bitowych wchodzących na rynek od końca lat 70. za podstawę przyjęto stosowanie 8-bitowego kodowania znaków. Stosowane strony kodowe w zakresie 0x00 ÷ 0x7F były całkowicie zgodne z US-ASCII, do kodowania znaków narodowych i specjalnych wykorzystano zakres 0x80 ÷ 0xFF. Do chwili obecnej w użyciu pozostała wyłącznie wersja US-ASCII.
Zestaw znaków
[edytuj | edytuj kod]Zestaw wspólny
[edytuj | edytuj kod]Dla znaków narodowych przeznaczono następujące pozycje: 0x40, 0x5B, 0x5C, 0x5D, 0x5E, 0x60, 0x7B, 0x7C, 0x7D I 0x7E. Dodatkowo dwie pozycje: 0x23 i 0x24 przeznaczono na alternatywne znaki walut. Wszystkie pozostałe pozycje są zgodne z ASCII.
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | Znaki kontrolne | |||||||||||||||
1x | ||||||||||||||||
2x | Spacja | ! | " | 0x23 | 0x24 | % | & | ' | ( | ) | * | + | , | - | . | / |
3x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? |
4x | 0x40 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
5x | P | Q | R | S | T | U | V | W | X | Y | Z | 0x5B | 0x5C | 0x5D | 0x5E | _ |
6x | 0x60 | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o |
7x | p | q | r | s | t | u | v | w | x | y | z | 0x7B | 0x7C | 0x7D | 0x7E |
Znaki na fioletowym tle są znakami sterującymi. Pozycje z żółtym tłem są przeznaczone na znaki narodowe.
Odmiany narodowe
[edytuj | edytuj kod]Wybrane kodowania odmian narodowych ISO/IEC 646:
Oznaczenie | Kraj | Norma krajowa | Pozycja | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x23 | 0x24 | 0x40 | 0x5B | 0x5C | 0x5D | 0x5E | 0x60 | 0x7B | 0x7C | 0x7D | 0x7E | |||
IRV | — | — | # | $ 1) | @ | [ | \ | ] | ^ | ` | { | | | } | ~ |
US | USA | ANSI X3.4 | # | $ | @ | [ | \ | ] | ^ | ` | { | | | } | ~ |
CA | Kanada | CSA Z243.4 | # | $ | à | â | ç | ê | î | ô | é | ù | é | û |
CH | Szwajcaria | ? | ù | $ | à | é | ç | ê | î | ô | ä | ö | ü | û |
DE | Niemcy | DIN 66003 | # | $ | § | Ä | Ö | Ü | ^ | ` | ä | ö | ü | ß |
ES | Hiszpania | ? | £ | $ | § | ¡ | Ñ | ¿ | ^ | ` | ° | ñ | ç | ~ |
FI | Finlandia | ? | # | $ | @ | Ä | Ö | Å | Ü | é | ä | ö | å | ü |
FR | Francja | NF Z 62-010 | £ | $ | à | ° | ç | § | ^ | ` | é | ù | é | ¨ |
GB | Wlk. Brytania | BS 4730 | £ | $ | @ | [ | \ | ] | ^ | ` | { | | | } | ~ |
IT | Włochy | ? | £ | $ | § | ° | ç | é | ^ | ù | à | ò | ù | ì |
NL | Holandia | ? | £ | $ | ¾ | ÿ | ½ | | | ^ | ` | ¨ | ƒ | ¼ | ´ |
NO | Norwegia | NS 4551-1 | # | $ | @ | Æ | Ø | Å | ^ | ` | æ | ø | å | ~ |
PT | Portugalia | ? | # | $ | @ | Ã | Ç | Õ | ^ | ` | ã | ç | õ | ~ |
SE | Szwecja | SEN 850200 B | # | $ | É | Ä | Ö | Å | Ü | é | ä | ö | å | ü |
1) w wersjach sprzed 1991 r. na tej pozycji znajdował się uniwersalny znak waluty (¤)
Język polski
[edytuj | edytuj kod]Polska wersja była uregulowana normą BN-74/3101-01. Ponieważ język polski używa aż 18 liter ze znakami diakrytycznymi (9 małych i 9 wielkich), możliwe było unormowanie jedynie małych liter.
Zestaw znaków:
Pozycja | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0x23 | 0x24 | 0x40 | 0x5B | 0x5C | 0x5D | 0x5E | 0x60 | 0x7B | 0x7C | 0x7D | 0x7E |
# | zł | ę | ź | \ | ń | ś | ą | ó | ł | ż | ć |