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

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

Zestaw wspólny

edytuj

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

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

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

Linki zewnętrzne

edytuj