ISO/IEC 646, is an ISO/IEC standard in the field of character encoding. It is equivalent to the ECMA standard ECMA-6 and developed in cooperation with ASCII at least since 1964. The first version of ECMA-6 had been published in 1965, based on work the ECMA's Technical Committee TC1 had carried out since December 1960. The first edition of ISO/IEC 646 was published in 1973, and the most recent, third, edition in 1991.
ISO/IEC 646 specifies a 7-bit character code from which several national standards are derived. It allocates a set of 82 unique graphic characters to 7-bit code points, known as the invariant (INV) or basic character set, including letters of the ISO basic Latin alphabet, digits, and some common English punctuation. It leaves 12 code points to be allocated by conforming national standards for additional letters of Latin-based alphabets or other symbols.
It also defines the International Reference Version (IRV), including a full allocation of 94 graphic characters, to be used when a specific national version is not required. As of the 1991 edition of ISO/IEC 646, the IRV and ASCII are identical. Previous editions differed in only one or two code points.
History
ISO/IEC 646 and its predecessor ASCII (ASA X3.4) largely endorsed existing practice regarding character encodings in the telecommunications industry.
As ASCII did not provide a number of characters needed for languages other than English, a number of national variants were made that substituted some less-used characters with needed ones. Due to the incompatibility of the various national variants, an International Reference Version (IRV) of ISO/IEC 646 was introduced, in an attempt to at least restrict the replaced set to the same characters in all variants. The original version (ISO 646 IRV) differed from ASCII only in that code point 0x24, ASCII's dollar sign was replaced by the international currency symbol . The final 1991 version of the code ISO/IEC 646:1991 is also known as ITU T.50, International Reference Alphabet or IRA, formerly International Alphabet No. 5 (IA5). This standard allows users to exercise the 12 variable characters (i.e., two alternative graphic characters and 10 national defined characters). Among these exercises, ISO 646:1991 IRV (International Reference Version) is explicitly defined and identical to ASCII.
The ISO/IEC 8859 series of standards governing 8-bit character encodings supersede the ISO/IEC 646 international standard and its national variants, by providing 96 additional characters with the additional bit and thus avoiding any substitution of ASCII codes. The ISO/IEC 10646 standard, directly related to Unicode, supersedes all of the ISO646 and ISO/IEC 8859 sets with one unified set of character encodings using a larger 21-bit value.
A legacy of ISO/IEC 646 is visible on Windows, where in many East Asian locales the backslash character used in filenames is rendered as ¥ or other characters such as ₩. Despite the fact that a different code for ¥ was available even on the original IBM PC's code page 437, and a separate double-byte code for ¥ is available in Shift JIS (although this often uses alternative mapping), so much text was created with the backslash code used for ¥ (due to Shift_JIS being officially based on ISO 646:JP, although Microsoft maps it as ASCII) that even modern Windows fonts have found it necessary to render the code that way. A similar situation exists with ₩ and EUC-KR. Another legacy is the existence of trigraphs in the C programming language.
Published standards ECMA-6 (1965-04-30), first edition (withdrawn) ISO/R646-1967 (withdrawn), or ECMA-6 (1967-06), second edition (withdrawn) ECMA-6 (1970-07), third edition (withdrawn) ISO 646:1972 (withdrawn), or ECMA-6 (1973-08), fourth edition (withdrawn) ISO 646:1983 (withdrawn), or ECMA-6 (1984-12, 1985-03), fifth edition (withdrawn) ITU-T Recommendation T.50 IA5 (1988-11-25) (withdrawn), or ISO/IEC 646:1991 (in force), or ECMA-6 (1991-12, 1997-08), sixth edition (in force) ITU-T Recommendation T.50 IRA (1992-09-18) (in force)
Code page layout The following table shows the ISO/IEC 646:1991 International Reference Version character set. Each character is shown with its Unicode equivalent. Code points open for substitution in national variants are shown with a grey background. Yellow background indicates a character that, in some variants, could be combined with a previous character as a diacritic using the backspace character, which may affect glyph choice.
In addition to the invariant set restrictions, 0x23 is restricted to be either # or £ and 0x24 is restricted to be either $ or ¤. However, these restrictions are not followed by all national variants.
Composite Graphic Characters
According to ISO/IEC 646, every graphic character must be a spacing character; that is, it must advance the character position forward. As a result, non-spacing combining characters are not permitted in any national version. This is in contrast to later standards such as ISO/IEC 2022 and ISO/IEC 10646 which permit or include combining characters.
Several spacing characters can be used as diacritical marks, when preceded or followed with a backspace C0 control to create accented letters, referred to as composite graphic characters in the standard. For example, the sequence may be used to image the character . This encoding method originated in the typewriter/teletype era when use of backspace would overstrike a glyph, and may be considered deprecated.
This method is attested in the code charts for the IRV, as well as the GB, FR1, CA, and CA2 national versions, which note that , , , and may behave as the diaeresis, acute accent, cedilla, and circumflex (rather than quotation marks, a comma, and an upward arrowhead), respectively, when preceded or followed by a backspace. The current PL-2002 standard explicitly directs the use of the backspace and apostrophe to form Polish letters with an acute accent. Some editions of ISO/IEC 646 also suggest that the solidus may be used with the equal sign to compose the not equal sign, , and that the underscore may be used to effect underlined text. The tilde character was similarly introduced as a diacritic , although the standard is silent about its use.
Later, when wider character sets gained more acceptance, ISO/IEC 8859, vendor-specific character sets and eventually Unicode became the preferred methods of coding accented letters.
Variant codes and descriptions
ISO/IEC 646 national variants Some national variants of ISO/IEC 646 are as follows:
Version Code ISO-IR Registered Escape Sequence Standard Description CA121 ESC 2/8 7/7 CSA Z243.4-1985-1 Canada (No. 1 alternative, with "î")(French, classical) (Code page 1020) CA2122 ESC 2/8 7/8 CSA Z243.4-1985-2 Canada (No. 2 alternative, with "É")(French, reformed orthography) CN57 ESC 2/8 5/4 GB/T 1988-80 People's Republic of China (Basic Latin) CU151 ESC 2/8 2/1 4/1 NC 99-10:81 / NC NC00-10:81 Cuba (Spanish) DANO9-1 ESC 2/8 4/5 NATS-DANO (SIS) Norway and Denmark (journalistic texts). Invariant code point 0x22 is displayed as , (compare in the IRV). It is, however, still considered a double quotation mark. Accompanies SEFI (NATS-SEFI). DE21 ESC 2/8 4/11 DIN 66003 Germany (German) (Code page 1011, 20106) DK—— DS 2089 Denmark (Danish) (Code page 1017) ES17 ESC 2/8 5/10 Olivetti Spanish (international) (Code page 1023) ES285 ESC 2/8 6/8 IBM Spain (Basque, Castilian, Catalan, Galician) (Code page 1014) FI10 SFS 4017 Finland (basic version) (Code page 1018) FR69 ESC 2/8 6/6 AFNOR NF Z 62010-1982 France (French) (Code page 1010) FR125 ESC 2/8 5/2 AFNOR NF Z 62010-1973 France (obsolete since April 1985) (Code page 1104) GB4 ESC 2/8 4/1 BS 4730 United Kingdom (English) (Code page 1013) HU86 ESC 2/8 6/9 MSZ 7795-3:1984 Hungary (Hungarian) IE207 ESC 2/8 2/1 4/3 I.S. 433:1996 Ireland (Irish) INV170 ESC 2/8 2/1 4/2 ISO 646:1983 Invariant subset (IRV)2 ESC 2/8 4/0 ISO 646:1973 International Reference Version. 0x7E as an overline (ISO-IR-002).—— ISO 646:1983 International Reference Version. 0x7E as a tilde (Code page 1009, 20105).ISO 646:1991 International Reference Version matches the US variant (see below). IS——— Iceland (Icelandic) De facto standard, proposed in 1978 but never formally approved. IT15 ESC 2/8 5/9 UNI 0204-70 / Olivetti? Italian (Code page 1012) JP14 ESC 2/8 4/10 JIS C 6220:1969-ro Japan (Romaji) (Code page 895). Also used as an 8-bit code with the corresponding Katakana supplementary set. JP-OCR-B92 ESC 2/8 6/14 JIS C 6229-1984-b Japan (OCR-B) KR—— KS C 5636-1989 South Korea MT—— ? Malta (Maltese, English) NL—— IBM Netherlands (Dutch) (Code page 1019) NO60 ESC 2/8 6/0 NS 4551 version 1 Norway (Code page 1016) NO261 ESC 2/8 6/1 NS 4551 version 2 Norway (obsolete since June 1987) (Code page 20108) PL-2002—— PN-I-10050:2002 Poland (current as of 2025) Set for writing Polish. Includes the Euro sign. PL-ZU0—— PN-T-42109-02:1984 Poland (withdrawn in 2000) Set named "ZU0" for writing Polish. PT16 ESC 2/8 4/12 Olivetti Portuguese (international) PT284 ESC 2/8 6/7 IBM Portugal (Portuguese, Spanish) (Code page 1015) SE10 ESC 2/8 4/7 SEN 850200 Annex B, SIS 63 61 27 Sweden (basic Swedish) (Code page 1018, D47) SE211 ESC 2/8 4/8 SEN 850200 Annex C, SIS 63 61 27 Sweden (extended Swedish for names) (Code page 20107, E47) SEFI8-1 ESC 2/8 4/3 NATS-SEFI (SIS) Sweden and Finland (journalistic texts). Accompanies DANO (NATS-DANO). T.61-7bit102 ESC 2/8 7/5 ITU/CCITT T.61 Recommendation International (Teletex). Also used with the corresponding supplementary set as an 8-bit code. TW— CNS 5205-1996 Republic of China (Taiwan) US / (IRV)6 ESC 2/8 4/2 ANSI X3.4-1968 and ISO 646:1983 (also IRV in ISO/IEC 646:1991) United States (ASCII, Code page 367, 20127) YU141 ESC 2/8 7/10 JUS I.B1.002 (YUSCII) former Yugoslavia (Croatian, Slovene, Serbian, Bosnian) INIS49 ESC 2/8 5/7 INIS (IAEA) ISO 646 IRV subset
National derivatives Some national character sets also exist which are based on ISO/IEC 646 but do not strictly follow its invariant set (see also § Derivatives for other alphabets):