ISO/IEC 646

< ISO

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 ) 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
0x Znaki kontrolne
1x
2x Spacja !" 0x23 0x24 %&'()*+,-./
3x 0123456789 : ;<=> ?
4x 0x40ABCDEFGHIJKLMNO
5x PQRSTUVWXYZ 0x5B 0x5C 0x5D 0x5E_
6x 0x60abcdefghijklmno
7x pqrstuvwxyz 0x7B 0x7C 0x7D 0x7E  

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:

Oznaczenie Kraj Norma krajowa Pozycja
0x230x240x400x5B0x5C0x5D0x5E0x600x7B0x7C0x7D0x7E
IRV #$ 1)@[\]^`{|}~
US USA ANSI X3.4 #$@[\]^`{|}~
CA KanadaCSA Z243.4#$àâçêîôéùéû
CH Szwajcaria ?ù$àéçêîôäöüû
DE NiemcyDIN 66003#$§ÄÖÜ^`äöüß
ES Hiszpania ?£$§¡Ñ¿^`°ñç~
FI Finlandia ?#$@ÄÖÅÜéäöåü
FR FrancjaNF Z 62-010£$à°ç§^`éùé¨
GB Wlk. BrytaniaBS 4730£$@[\]^`{|}~
IT Włochy ?£$§°çé^ùàòùì
NL Holandia ?£$¾ÿ½|^`¨ƒ¼´
NO NorwegiaNS 4551-1#$@ÆØÅ^`æøå~
PT Portugalia ?#$@ÃÇÕ^`ãçõ~
SE SzwecjaSEN 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ą PN-84/T-42109/02, pod nazwą ZU0. 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 i dużej litery Ł. Ta norma została wycofana w grudniu 2000 roku.

W 2002 roku PKN wydał normę PN-I-10050:2002, ustalającą inne 7-bitowe kodowanie polskich liter. Ta norma jest w pełni zgodna z ISO 646, ale nie jest kompatybilna z poprzednią. Litery z kreską są kodowane jako znaki złożone za pomocą podstawowych liter łacińskich i znaków «cofnięcie» (0x08) i «apostrof» (0x27).

Zestawy znaków:

NormaPozycja
0x230x240x400x5B0x5C0x5D0x5E0x600x7B0x7C0x7D0x7E
PN-84/T-42109/02#¤ęźŁńśąółżć
PN-I-10050:2002#$@ĄĘŁŻąęłż

Linki zewnętrzne