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 http://aspell.net/charsets/iso646.html) 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.

  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 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

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: Norma Pozycja 0x23 0x24 0x40 0x5B 0x5C 0x5D 0x5E 0x60 0x7B 0x7C 0x7D 0x7E PN-84/T-42109/02 # ¤ ę ź Ł ń ś ą ó ł ż ć PN-I-10050:2002 # $ @ Ą Ę Ł Ż € ą ę ł ż

Przypisy

Linki zewnętrzne Strona normy w katalogu ISO Strona normy ECMA, norma ECMA-6 (pdf) wybrane zestawy znaków ISO/IEC 646 Strona normy polskiej w katalogu PKN

Kategoria:Kodowania znaków Kategoria:Standardy ISO