목차

ISO/IEC 646

7비트 문자 집합을 정의하는 ISO 표준. 정식 표준 번호는 ISO/IEC 646:1991이며, ECMA-6으로도 표준화되어 있다. 사실 주객전도인게, 이 표준은 1965년1) ECMA-6으로 먼저 표준화된 뒤에 나중에야 ISO 646:1983로 국제 표준이 되었다.

본래는 ASCII(ANSI X3.4)에서 유래하였으며, ASCII에서 특수 문자를 각 언어의 필요에 맞도록 재정의하도록 하여 수십 개의 국가별 변종(national variant)을 사용할 수 있도록 하였다. 이를테면 ISO/IEC 646 US는 ASCII와 동일하며, ISO/IEC 646 KR은 KS X 1003, ISO/IEC 646 JP는 JIS X 0201의 첫 7비트 영역과 동일하다. #$@[\]^`{|}~를 제외한 다른 문자는 어느 변종에서도 똑갈이 할당되었기에 ISO/IEC 646 INV("invariant")로 지칭되었다.

ISO/IEC 646의 가장 큰 문제는 ASCII에는 있지만 ISO/IEC 646 INV에 없는 문자들이 상당히 자주 쓰였다는 것으로, 이를테면 ISO C 표준화 과정에서는 정확히 이 이유 때문에 삼중자(trigraph)를 추가하는 병크삽질을 저지르고 만다. 덕택에 7비트 영역의 변경이 필요하지 않은 8비트 문자 집합인 ISO IEC 8859가 등장하며 ISO/IEC 646은 역사 속으로 사라진다. 그러나 ISO/IEC 646이 문자 집합에 대한 최초의 국제 표준이라는 의의는 있으며, 유니코드ISO 표준 번호인 ISO/IEC 10646도 여기서 유래한다.

포함된 문자들

ISO/IEC 646에서 유래한 문자 집합이 항상 포함해야 하는 변경 불가능(invariant)한 문자들은 ISO/IEC 646 INV라는 이름으로 따로 부르며, 당연하지만 여기 들어 있는 문자는 ASCII와 정확히 동일하다.

x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
0x NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI
1x DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US
2x SP ! " % & ' ( ) * + , - . /
3x 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
4x 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 _
6x 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 DEL

비어 있는 공간들은 각국이 필요로 하는 문자들을 채워 넣을 수 있도록 하였으며, 그 사용 용도는 크게 다음과 같이 나뉜다.

기존의 ASCII는 이 표준 하에서는 ISO/IEC 646 US라는 이름을 사용한다. 이와는 별개로 문자 집합이 완전히 같은데 특수 문자를 발음 변경 문자로 쓸 수 있게만 한 국제 참조 변종(International Reference Variant; IRV)이 존재한다.

관련된 문자 집합

다음 문자 집합은 사실상 ISO/IEC 646을 기반으로 정의되어 있다.

1) Ecma인터내셔널1961년에 설립되었다는 걸 기억하자.
2) 아예 대문자가 하나도 없는 경우도 있으며, DE와 같이 대문자로 잘 쓰이지 않는 ß에만 대문자를 배당하지 않은 경우도 있다.