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

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

Zestaw wspólny

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.

 x0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF
0xZnaki kontrolne
1x
2xSpacja!"0x230x24%&'()*+,-./
3x0123456789:;<=>?
4x0x40ABCDEFGHIJKLMNO
5xPQRSTUVWXYZ0x5B0x5C0x5D0x5E_
6x0x60abcdefghijklmno
7xpqrstuvwxyz0x7B0x7C0x7D0x7E 

Znaki na fioletowym tle są znakami sterującymi. Pozycje z żółtym tłem są przeznaczone na znaki narodowe.

Odmiany narodowe

Wybrane kodowania odmian narodowych ISO/IEC 646:

OznaczenieKrajNorma krajowaPozycja
0x230x240x400x5B0x5C0x5D0x5E0x600x7B0x7C0x7D0x7E
IRV#$ 1)@[\]^`{|}~
USUSAANSI X3.4#$@[\]^`{|}~
CAKanadaCSA Z243.4#$àâçêîôéùéû
CHSzwajcaria?ù$àéçêîôäöüû
DENiemcyDIN 66003#$§ÄÖÜ^`äöüß
ESHiszpania?£$§¡Ñ¿^`°ñç~
FIFinlandia?#$@ÄÖÅÜéäöåü
FRFrancjaNF Z 62-010£$à°ç§^`éùé¨
GBWlk. BrytaniaBS 4730£$@[\]^`{|}~
ITWłochy?£$§°çé^ùàòùì
NLHolandia?£$¾ÿ½|^`¨ƒ¼´
NONorwegiaNS 4551-1#$@ÆØÅ^`æøå~
PTPortugalia?#$@ÃÇÕ^`ãçõ~
SESzwecjaSEN 850200 B#$ÉÄÖÅÜéäöåü

1) w wersjach sprzed 1991 r. na tej pozycji znajdował się uniwersalny znak waluty (¤)

Język polski

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
0x230x240x400x5B0x5C0x5D0x5E0x600x7B0x7C0x7D0x7E
#ęź\ńśąółżć

Linki zewnętrzne