Hubbry Logo
ISO/IEC 646ISO/IEC 646Main
Open search
ISO/IEC 646
Community hub
ISO/IEC 646
logo
7 pages, 0 posts
0 subscribers
Be the first to start a discussion here.
Be the first to start a discussion here.
ISO/IEC 646
ISO/IEC 646
from Wikipedia
Not found
Revisions and contributorsEdit on WikipediaRead on Wikipedia
from Grokipedia
ISO/IEC 646 is an international standard developed by the International Organization for Standardization (ISO) and the International Electrotechnical Commission (IEC) that specifies a 7-bit coded character set for information interchange in data processing and communication systems, consisting of 128 characters divided into control functions and graphic symbols such as letters, digits, and special characters, primarily supporting alphabets based on the Latin script. The standard, in its current third edition published in 1991, provides a framework for consistent character encoding to enable reliable data exchange across different information technology environments. The standard defines an International Reference Version (IRV), which serves as the baseline encoding and is identical to the United States of America Standard Code for Information Interchange (US-ASCII), ensuring compatibility with widely used American systems while allowing for controlled variations. It includes 82 invariant graphic characters that remain fixed across all versions, alongside positions designated as flexible to accommodate national or application-specific needs, such as substituting symbols for characters unique to particular languages (e.g., accented letters in European variants). This flexibility enabled the creation of numerous national variants, including those for languages like French, German, and Scandinavian, which adjusted certain code points to include diacritics or currency symbols without disrupting the core structure. Originally established in earlier editions—such as ISO 646:1983, which it supersedes—ISO/IEC 646 has been confirmed as current through 2020 and remains foundational for 7-bit text encoding, though it has been largely supplemented in modern applications by 8-bit extensions like ISO/IEC 8859 and universal standards such as Unicode (ISO/IEC 10646). Control characters within the set are defined per ISO/IEC 6429, supporting functions like line feeds and tabs, while the standard assumes serial, forward-directed processing for implementation. Its design emphasizes simplicity and interoperability, making it a cornerstone for early computing and telecommunications protocols.

History

Origins and Early Development

In the early 1960s, the proliferation of national character encoding standards, such as the American Standard Code for Information Interchange (ASCII) adopted in 1963, highlighted the need for an international 7-bit code to facilitate compatibility in data processing and telecommunications across borders. This effort was driven by the rapid growth of computing and telegraphy systems, which required a unified framework to minimize translation errors and support global data interchange without expanding beyond the constraints of 7-bit transmission channels commonly used in teletype and early computer networks. A pivotal influence came from the European Computer Manufacturers Association (ECMA), whose Technical Committee TC1 began work on a standardized code in December 1960, culminating in the publication of ECMA-6, the first edition of a 7-bit coded character set for information interchange, on April 30, 1965. Parallel efforts within the International Organization for Standardization (ISO) were coordinated by Technical Committee 97 (TC97) and its Subcommittee 2 (SC2) on character sets and coding, established in 1961 as a working group to harmonize proposals from national bodies like the American Standards Association and the British Standards Institution. In 1967, TC97/SC2 advanced a formal proposal leading to the adoption of ISO Recommendation R 646 on December 1, 1967, which provided a skeleton structure for the international reference version (IRV) while allowing flexibility for national adaptations. The Comité Consultatif International Télégraphique et Téléphonique (CCITT), now ITU-T, played a crucial role in ensuring telecommunications compatibility, integrating the ISO framework into its standards for telegraph alphabets. Early development faced significant challenges in accommodating diacritics and national symbols within the 128-character limit of a 7-bit encoding, as many European languages required accents like acute and grave marks that exceeded the basic Latin alphabet's scope. To address this, the standard designated certain positions as "national use" or interchangeable, enabling countries to substitute symbols such as currency signs or umlauts while preserving core compatibility for control and graphic characters essential to data processing. These compromises balanced international uniformity with regional needs, though they introduced complexities in implementation for telegraphy and early computing systems. This foundational work laid the groundwork for subsequent revisions and formal standards.

Published Standards and Revisions

The ISO/IEC 646 standard was initially published in 1973 as the first edition of ISO 646, establishing a 7-bit coded character set for information interchange among data processing and communication systems. This edition aligned closely with the American Standard Code for Information Interchange (ASCII) while providing options for national variants to accommodate diverse linguistic needs. The second edition, published in 1983 under the designation ISO 646, incorporated the International Reference Version (IRV) as a baseline for international compatibility, replacing certain symbols to better support global usage while retaining flexibility for regional adaptations. This revision addressed feedback from early implementations and harmonized with emerging telecommunications standards. The third and most recent edition, designated ISO/IEC 646:1991, further clarified the options for defining specific character sets and emphasized the IRV by substituting the currency sign (¤) with the dollar sign ($), enhancing consistency for international data exchange. This edition, prepared by ISO/IEC JTC 1/SC 2, canceled and technically revised the 1983 version, with Annex A providing integral guidance on variant implementations. No formal amendments have been issued to ISO/IEC 646:1991, and there have been no major updates since its publication, reflecting the broader shift in the industry toward the more comprehensive ISO/IEC 10646 (Universal Coded Character Set) for handling multilingual text. As of 2025, the standard remains published and was last reviewed and confirmed in 2020, maintaining its status as an active but legacy reference for 7-bit encodings in older systems and protocols. It continues to be invoked in contexts requiring compatibility with historical data interchange practices, though its practical adoption has diminished with the prevalence of Unicode-based solutions.

Core Encoding Structure

Basic Code Page Layout

ISO/IEC 646 defines a 7-bit coded character set consisting of 128 characters, with code values ranging from 0 to 127. This structure ensures compatibility with early data processing and communication systems, utilizing bits b6 through b0 (with b7 implicitly set to 0), which facilitates extension to 8-bit environments such as those specified in ISO/IEC 2022. The code table is organized into 8 columns (numbered 0 to 7, corresponding to bits b6 b5 b4) and 16 rows (numbered 0 to 15, corresponding to bits b3 b2 b1 b0), where each position's code value is computed as (column × 16) + row. The set divides into a control portion occupying columns 0 and 1 across all rows (codes 0 to 31) plus the DELETE position at column 7, row 15 (code 127), and a graphic portion spanning columns 2 to 7 across rows 0 to 15 excluding 7/15 (codes 32 to 126). This arrangement separates non-printable control functions from printable graphic symbols, promoting consistent interchange. Certain positions are invariant, meaning they are assigned fixed, ASCII-compatible characters across all versions of the standard to ensure portability. Examples include the space at code 32 (position 2/0), digits 0 through 9 at codes 48 to 57 (positions 3/0 through 3/9), and uppercase letters A through Z at codes 65 to 90 (positions 4/1 through 5/10). Other invariants encompass basic punctuation such as the exclamation mark at code 33 (position 2/1) and quotation mark at code 34 (position 2/2). To accommodate national needs, specific graphic positions are designated as optional for variations while maintaining core compatibility. The column-row format of the table visually represents this hierarchy, with the leftmost columns reserved for controls and the rightward columns for progressively more complex graphic elements.
PortionColumnsRowsCode RangeKey Positions/Examples
Control (C0)0–10–150–31NUL (0/0), ESC (1/11)
Graphic (G0)2–7 (excl. 7/15)0–1532–126Space (2/0), A (4/1), 0 (3/0)
Control (DEL)715127DELETE (7/15)

Control Characters

ISO/IEC 646 defines a set of control characters primarily in the C0 group, occupying bit combinations 00/00 to 01/15 (decimal codes 0 through 31), along with the DELETE (DEL) character at position 7/15 (decimal 127). These characters are intended for controlling the processing, transmission, or interpretation of data rather than representing graphic symbols, with their functions specified in ISO/IEC 6429. The C0 set enables essential operations such as formatting, signaling, and character set shifting, ensuring interoperability in 7-bit data interchange systems. Key C0 control characters include NULL (NUL, code 00), which serves as a filler to indicate no information or pad data streams; BELL (BEL, code 07), which produces an audible or visible alert signal; LINE FEED (LF, code 10), which advances the active position to the next line; CARRIAGE RETURN (CR, code 13), which returns the active position to the line start; and ESCAPE (ESC, code 27 or 1B hex), which introduces sequences for extending control functions or selecting character sets. Additionally, HORIZONTAL TABULATION (HT, code 09) moves the active position to the next predefined tab stop for alignment, while SHIFT OUT (SO, code 14) and SHIFT IN (SI, code 15) toggle between primary and alternate graphic character sets to support multilingual text without expanding the code width. DEL (code 127) functions as a delete marker, typically ignored during processing to erase or obliterate erroneous data without altering content. These control characters are categorized into transmission controls, such as SO and SI for managing data flow and set shifting during interchange, and device controls, such as HT and BEL for operating output devices like printers or terminals. The C1 control set (codes 128-159 in 8-bit extensions) is not part of the core 7-bit ISO/IEC 646 but can be invoked optionally through ESC sequences as defined in ISO/IEC 2022 for advanced functions like private use or further extensions. The control characters in ISO/IEC 646 are fully compatible with the corresponding subset of US-ASCII, as the International Reference Version (IRV) of ISO/IEC 646 is identical to ASCII in these positions, promoting seamless data exchange. National variants of ISO/IEC 646 may differ in graphic character assignments, but the C0 controls and DEL remain invariant across implementations to maintain universal transmission control and device compatibility.
Control CharacterCode (Decimal/Hex)Primary Function
NUL0 / 00Filler or padding for data streams.
BEL7 / 07Audible or visible alert signal.
HT9 / 09Advance to next tab stop.
LF10 / 0ALine advance.
CR13 / 0DReturn to line start.
SO14 / 0EShift to alternate character set.
SI15 / 0FShift back to primary set.
ESC27 / 1BInitiate escape sequence.
DEL127 / 7FDelete or obliterate data.

Graphic Characters

In ISO/IEC 646, graphic characters refer to the printable symbols allocated to the 95 bit combinations from 2/0 to 7/15 excluding 7/15 (DEL) in the 7-bit code table. Of the 94 non-space positions, 82 are designated as invariant, ensuring a consistent set of characters across all versions of the standard for reliable international interchange. These invariant graphics include the basic Latin alphabet, digits, and essential punctuation and symbols, represented in a single byte using the 7-bit encoding scheme. The invariant graphic characters encompass uppercase and lowercase Latin letters (A–Z in positions 4/1 through 5/10 including 4/15 and 5/0, and a–z in positions 6/1 through 7/10 including 6/15 and 7/0, corresponding to decimal codes 65–90 and 97–122), digits 0–9 (3/0 to 3/9), and a core set of punctuation marks such as exclamation mark (! at 2/1), quotation mark (" at 2/2), percent sign (% at 2/5), ampersand (& at 2/6), apostrophe (' at 2/7), left parenthesis ( at 2/8), right parenthesis ) at 2/10), asterisk (* at 2/11), plus sign (+ at 2/9), comma (, at 2/12), hyphen-minus (- at 2/14), and full stop (. at 2/13). Additional symbols include equals sign (= at 3/12), question mark (? at 3/15), commercial at (@ at 4/0), and grave accent (at 4/15? No, is 4/15? 4/15=79=4F O, grave is 60=3C col3 row12? 48+12=60=3C < no. Wait, grave accent is 96=60 hex col6 row0=96=60 yes, but position 6/0. The text has "grave accent (` at 4/15)". Wrong! 4/15 is O. Critical, but since fixing positions, correct it. In original: "grave accent (` at 4/15)" Yes, error. So fix to correct position: grave accent at 6/0 (96). But 6/0 is lowercase p? No, 6/0=96=60 ` grave. Lowercase p is 7/0=112=70 p. Yes, 6/0 is ` in IRV. Yes. So, in fix, correct that. Also, question mark at 3/15 yes, since 3/15=63=3F ?. Yes. All these characters function as spacing characters, advancing the printing or display position by one unit to support linear text layout in data processing. In text processing applications, these graphic characters serve foundational roles, such as forming words with the Latin letters, denoting numerical values with digits, and facilitating mathematical expressions through symbols like the plus sign (+), minus sign (-), and equals sign (=). Currency representation is limited in the International Reference Version (IRV) to the dollar sign ($ at 2/4), providing a basic economic symbol for interchange, though other variants may substitute alternatives. Compared to ASCII, ISO/IEC 646 maintains high compatibility in its invariant positions but introduces flexibility in certain optional graphic slots, such as 2/3 and 2/4, where ASCII assigns number sign (#) and dollar sign ($), but ISO/IEC 646 permits international adaptations such as pound sign (£) or cent sign (¢) to accommodate non-US needs without altering the core encoding structure. This design principle ensures single-byte efficiency for the basic Latin script and symbols, promoting portability in early computing environments while allowing localization.

Variants and Adaptations

International Reference Version

The International Reference Version (IRV) of ISO/IEC 646, as specified in the 1983 and 1991 editions, defines a baseline 7-bit coded character set for international use, fully compatible with US-ASCII in its 1991 form. This version exercises no national or application-specific options, resulting in a fixed repertoire of 128 characters designated by ISO-IR 6. The 1983 IRV (ISO-IR 2) was nearly identical but included minor differences, such as replacing the dollar sign ($) with the currency sign (¤) at code position 0x24; these were resolved in 1991 to align precisely with ASCII. In the IRV, code positions 0 through 31 and 127 are assigned to control characters, including functions like NULL (0x00), line feed (0x0A), and delete (0x7F), while positions 32 through 126 cover 95 graphic characters such as the space (0x20), digits 0-9 (0x30-0x39), uppercase and lowercase Latin letters A-Z and a-z (0x41-0x5A and 0x61-0x7A), and common punctuation like exclamation mark (!) at 0x21 and period (.) at 0x2E. This structure ensures invariance across the 94 positions allocated for graphic characters (2/1 through 7/14 in the standard's notation), promoting unambiguous encoding without deviations for regional needs. The primary purpose of the IRV is to enable reliable interchange of information among data processing systems and communication equipment, particularly for Latin-script-based data in global contexts. It serves as the default subset in protocols requiring broad compatibility, such as Internet email under MIME standards, where US-ASCII (equivalent to the 1991 IRV) is mandated for header fields and safe transport of 7-bit data. This facilitates seamless transmission without assuming national variants, as emphasized in IETF specifications that discourage non-ASCII ISO 646 derivatives in mail systems. A key limitation of the IRV is its exclusion of diacritics and accented characters, restricting it to the basic unadorned Latin alphabet and standard symbols; accented forms must therefore rely on composition via combining sequences in higher-level encodings or resort to national variants for direct representation. This design prioritizes universality over linguistic completeness, making it suitable for core protocol layers but insufficient for text in languages requiring umlauts, acute accents, or cedillas without additional mechanisms.

National Variants

National variants of ISO/IEC 646 are 7-bit coded character sets developed by national standards bodies to adapt the international reference version (IRV) for specific languages and locales, primarily by substituting characters in designated optional positions while preserving the invariant set of 82 graphic characters and control functions. These variants ensure compatibility with the core structure of ISO/IEC 646:1991, allowing for the inclusion of diacritics, currency symbols, and other locale-specific glyphs essential for non-English text processing in early computing environments. The replacement rules in national variants target 10 flexible positions—typically code points 0x23 (#), 0x40 (@), 0x5B ([]), 0x5C (), 0x5D (]), 0x5E (^), 0x5F (_), 0x60 (`), and sometimes 0x24 ($) or 0x7E (~)—where the IRV provides default symbols that can be overridden without disrupting interoperability. For instance, the pound sign (£) often replaces the number sign (#) in several European variants to accommodate local currency notation, while diacritical marks like cedilla (ç) or section sign (§) fill positions originally assigned to brackets or backslash. This selective substitution maintains the 94-character graphic subset (G0) required for basic Latin script support, as registered in the ISO/IEC 2375 International Register of Coded Character Sets. Over 20 such variants were formalized, each assigned an ISO-IR registry number by ISO/IEC JTC 1/SC 2, ensuring traceable and standardized adaptations. Key examples include the French variant (ISO-IR-69, standardized as AFNOR NF Z 62-010:1982), which replaces # (0x23) with £, \ (0x5C) with ç, and ] (0x5D) with § to support accented characters and legal symbols common in French typography. The German variant (ISO-IR-21, DIN 66003:1974) substitutes # (0x23) with § and ~ (0x7E) with ß (sharp S), prioritizing umlauts and the Eszett for German-language data processing. Similarly, the Italian variant (ISO-IR-15, UNI 0204:1970) swaps # (0x23) with £ and adjusts brackets for è and other accents needed in Italian. The British variant (ISO-IR-4, BS 4730:1970) notably replaces # with £ at 0x23, reflecting the prominence of the pound sterling in UK computing. These adaptations were crucial in the 1970s and 1980s for terminal-based systems and teletype networks. In practice, national variants facilitated localized text handling in early digital infrastructure; for example, the French Minitel videotex network employed the ISO-IR-69 variant to render French characters on low-bandwidth connections, enabling widespread public access to online services from 1982 onward. Other variants, such as ISO-IR-4 (UK), ISO-IR-6 (US ASCII), ISO-IR-10 (Swedish), and ISO-IR-87 (Norwegian/Danish), followed analogous rules to support regional needs while aligning with the IRV for international exchange. The full registry encompasses variants for languages including Danish, Spanish, Portuguese, and Finnish, each ratified by bodies like AFNOR (France), DIN (Germany), and UNI (Italy) to promote consistent implementation in hardware and software.
VariantISO-IRNational StandardKey ReplacementsLanguage
French69AFNOR NF Z 62-010:1982# → £, \ → ç, ] → §French
German21DIN 66003:1974# → §, ~ → ßGerman
Italian15UNI 0204:1970# → £, [ → èItalian
British4BS 4730:1970# → £English (UK)
This table illustrates representative substitutions in prominent variants, highlighting their focus on currency and diacritics.

National Derivatives

National derivatives of ISO/IEC 646 refer to non-standardized encodings developed by countries or systems that extend or modify the International Reference Version (IRV) to accommodate local linguistic or technical requirements, typically transitioning to 8-bit representations while preserving the 7-bit core structure for compatibility. These derivatives often replace invariant characters with national symbols or add supplementary codes, facilitating information interchange in specific regional contexts without full adherence to ISO ratification processes. A prominent example is JIS X 0201, a Japanese encoding standard that incorporates a 7-bit romaji (Latin alphabet) subset directly derived from the ISO/IEC 646 IRV, designated as ISO-IR 14, alongside a katakana set (ISO-IR 13) to form an 8-bit code for phonetic representation in Romanized Japanese text. This structure allows seamless integration with ASCII-compatible systems while supporting basic Japanese input on early computers and peripherals. The romaji portion maintains the 94 graphic characters of ISO/IEC 646, with modifications limited to positions accommodating Japanese usage, such as currency symbols. In Korea, KS X 1003 (formerly KS C 5636) serves as a national derivative, functioning as the Korean variant of ISO/IEC 646 for 7-bit ASCII-like operations, including Hangul compatibility in single-byte contexts. It replaces certain invariant symbols with Korean-specific punctuation and is embedded within broader encodings like EUC-KR, which combines it with KS X 1001 for full Hangul and Hanja support. This derivative ensures backward compatibility with international data streams while prioritizing local script needs in legacy software and network protocols. For Vietnamese, VISCII represents an unofficial yet widely adopted derivative, modifying the ISO/IEC 646 base by reassigning six rarely used ASCII characters to diacritics essential for the Vietnamese alphabet, such as tone marks and vowel modifiers. Developed in the early 1990s for Unix systems, VISCII enables 8-bit encoding of the full quốc ngữ script while retaining 7-bit transparency for non-Vietnamese content, addressing limitations in standard Latin variants. Its design choices, including substitutions for invariant positions like the backslash and curly braces, reflect practical adaptations for regional keyboards and text processing. EBCDIC variants, while primarily IBM's parallel 8-bit family, indirectly influenced certain national derivatives through shared control structures and graphic allocations in mainframe environments, where conversions between EBCDIC and ISO/IEC 646 derivatives were common for cross-system data exchange. Soviet-era standards like GOST 7.52-82 further exemplify this, defining a 7-bit code for Russian Cyrillic interchange that mirrors ISO/IEC 646's layout but substitutes Latin graphics with phonetic equivalents, used in Eastern Bloc computing until the 1990s. These derivatives played a critical role in legacy hardware, such as VT-series terminals and early minicomputers, where 7-bit teletypes and serial interfaces relied on ISO/IEC 646 compatibility for reliable transmission. Transitioning to Unicode (ISO/IEC 10646) posed challenges, including mapping inconsistencies for substituted characters and byte-order issues in mixed 7/8-bit streams, often requiring custom conversion tools to preserve data integrity during modernization.

Extensions and Composites

Composite Graphic Characters

ISO/IEC 646 supports the formation of accented and other modified characters through the use of spacing graphic characters as diacritics, which are combined with base letters via overstriking techniques. This approach relies on the transmission of a sequence of graphic characters interspersed with control functions like BACKSPACE to position the diacritic over the base letter, emulating typewriter-style composition. All graphic characters in the standard are defined as spacing characters, meaning they advance the active position unless modified by controls, which necessitates explicit positioning for overlap. Specific composite graphic characters are constructed using invariant or variant spacing diacritics, such as the APOSTROPHE (code 39, bit combination 2/7) for an acute accent, the QUOTATION MARK (code 34, bit combination 2/2) for a diaeresis or umlaut, the CIRCUMFLEX ACCENT (code 94, bit combination 5/14) for a circumflex, the GRAVE ACCENT (code 96, bit combination 6/0) for a grave, and the TILDE (code 126, bit combination 7/14) for a tilde. For example, the sequence for "é" involves transmitting the lowercase "e" (code 101), followed by BACKSPACE (code 8), and then APOSTROPHE to overstrike the acute accent. Similarly, "ê" is formed by "e" + BACKSPACE + CIRCUMFLEX ACCENT, and "è" by "e" + BACKSPACE + GRAVE ACCENT. Positions such as 96 and 126 are particularly noted as optional slots in national variants for assigning additional diacritics like grave and tilde, enabling locale-specific adaptations while maintaining compatibility with the international reference version. Additional diacritics may be allocated to optional bit combinations like 4/0, 5/11 through 5/14, 6/0, and 7/11 through 7/14 in national variants, such as using the COMMA (code 44, bit combination 2/10) for cedilla or similar marks when overstruck with letters like "c" to form "ç". The limitations of this mechanism are significant: unlike modern standards such as Unicode, which support true non-spacing combining characters, ISO/IEC 646 provides no dedicated combining codes, relying instead on spacing graphics and control-dependent positioning that may not render consistently across systems. Rendering of composites is hardware-dependent, typically requiring printers or displays capable of overstriking, and interchange can fail if sender and receiver do not agree on the interpretation of these sequences. As a result, while effective for simple Latin-based accented text in controlled environments, this approach is prone to ambiguity and is largely superseded by multi-byte encodings for broader character support.

Associated Supplementary Sets

ISO/IEC 646, as a 7-bit coded character set, was designed with provisions for extension to support additional graphic characters through supplementary sets, particularly to accommodate diacritics needed for Western European languages. One key associated supplementary set is defined in ISO/IEC 6937, which specifies a coded graphic character set for text communication using the Latin alphabet. This standard introduces a repertoire of characters that extend the basic ISO/IEC 646 framework by including non-spacing diacritical marks and other symbols, enabling the representation of accented letters such as à, á, â, ã, ä, å and their uppercase equivalents (À, Á, Â, Ã, Ä, Å) through combination with base Latin letters from the primary set. The integration of the ISO/IEC 6937 supplementary set with ISO/IEC 646 relies on the code extension techniques outlined in ISO/IEC 2022, which allows for the designation and invocation of multiple character sets within a single data stream. Specifically, the primary set follows the International Reference Version (IRV) of ISO/IEC 646, while the supplementary graphic characters from ISO/IEC 6937 can be designated as the G2 or G3 set using escape sequences, such as ESC . R for G2 designation. This mechanism permits switching between the basic 7-bit code and the supplementary elements, typically over an 8-bit transmission channel, to handle multilingual text without fixed reallocation of code positions in the base set. Originally developed in the early 1980s, this supplementary approach was particularly utilized in internationalized communication systems, such as CCITT Recommendation T.51 (harmonized with ISO/IEC 6937) for Teletex and videotex services, where efficient handling of European languages required diacritics without disrupting compatibility with ASCII-derived systems. For example, in videotex protocols, escape sequences allowed dynamic invocation of the supplementary set to display accented characters in real-time text rendering. However, with the widespread adoption of fixed 8-bit encodings, ISO/IEC 6937 and its supplementary extensions have been largely superseded by ISO/IEC 8859 series standards, which provide precomposed accented characters in a more straightforward single-byte format for Western European scripts.

Encoding Families and Influences

ISO/IEC 646 served as the foundational 7-bit character encoding for several families of selectable national replacement character sets (NRCS), which allowed systems to substitute specific graphic characters to support regional languages while maintaining compatibility with the international reference version (IRV). Developed initially by Digital Equipment Corporation (DEC) for terminals like the VT220 series starting in 1983, NRCS enabled dynamic selection of variants by replacing up to 12 positions in the ISO/IEC 646 code table with national symbols, such as accented letters for European languages. IBM incorporated these sets into its code page ecosystem, assigning numbers like 1100 to the Multinational Character Set (MCS), a DEC-derived NRCS variant that extended support for Western European characters beyond basic ASCII. For EBCDIC-based systems, IBM's code page 037 includes graphic characters from the ISO/IEC 646 repertoire in its structure, but with remapped code points, allowing interchange via translation with 7-bit ASCII environments. The World System Teletext standard, formalized in ETSI ETS 300 706 in 1997 (with roots in 1983 CCIR recommendations), uses a 7-bit encoding compatible with ISO/IEC 646, employing its Latin G0 primary set as the default character repertoire for broadcasting text services. This specification defined teletext extensions, including control functions and supplementary packets for designating character sets, while using a default G0 set of 96 characters (95 alphanumerics plus space) to ensure compatibility across 625-line television systems in Europe and beyond. National options in positions like 0x23 and 0x7B–0x7E were adapted for accented Latin characters, allowing seamless integration with the IRV for multilingual teletext pages. Hewlett-Packard's Roman8 encoding, introduced in the mid-1980s for HP-UX systems and LaserJet printers, extended the ISO/IEC 646 IRV into an 8-bit repertoire by retaining the full 7-bit base in positions 0x00–0x7F and adding 96 supplementary characters in the upper range for Western European languages. Registered with IANA as csHPRoman8, it incorporated symbols like the œ ligature and currency marks not in the original 646, while ensuring backward compatibility with ASCII-derived systems through identical mapping of control and basic graphic characters. This design influenced printer control languages like PCL, where Roman8 served as a default symbol set for international text rendering. ISO/IEC 646 provided the structural basis for ISO/IEC 2022, which defines mechanisms for switching between multiple 7-bit and 8-bit character sets using escape sequences, thereby enabling support for larger repertoires without altering the core code elements of 646. Specifically, the 7-bit code structure in ISO/IEC 2022 conforms to ISO/IEC 646, allowing national variants to be invoked dynamically in protocols like email and terminal emulation. Similarly, ISO/IEC 8859-1 (Latin-1) partially derived from ISO/IEC 646 by extending its 7-bit IRV into an 8-bit standard, assigning the original 128 characters to the lower half and adding 96 Western European symbols to the upper half for broader diacritic support. This made ISO/IEC 8859-1 a de facto supersession for many 646 national variants in computing environments requiring 8-bit encodings.

Derivatives for Non-Latin Alphabets

Derivatives of ISO/IEC 646 for non-Latin alphabets adapted the 7-bit framework to accommodate scripts such as Cyrillic, Greek, Arabic, and Hebrew by reassigning positions in the optional graphic character slots (codes 0x40–0x5F and 0x60–0x7E) while preserving the invariant core for international interchange. These adaptations emerged in the 1980s to support national computing needs in environments constrained to 7-bit transmission, often prioritizing phonetic mappings over full diacritics or complex layouts. Unlike the International Reference Version, these sets replaced Latin letters with script-specific glyphs, enabling basic text processing for languages outside Western Europe. For Cyrillic scripts, the primary 7-bit derivative was KOI-7 (also known as Short KOI), a Russian standard that mapped 33 Cyrillic characters to positions 0x60–0x7E, overlaying the Latin lowercase letters to facilitate compatibility with ASCII-based systems. Developed in the Soviet era and formalized under GOST standards like GOST 27466-87 for code extension techniques in 7-bit sets, KOI-7 supported Russian text in early information processing systems, including teletype and computer terminals. Its design influenced legacy Unix locales for Cyrillic input. Greek adaptations centered on ELOT 927, standardized in 1986 by the Hellenic Organization for Standardization (ELOT) as ISO-IR-88. This 7-bit set replaced Latin lowercase letters (0x61–0x71 and 0x73–0x79) with the 24 Greek letters in alphabetical order, excluding final sigma, while retaining uppercase mappings in optional positions for polytonic needs. ELOT 927 enabled Greek text handling in 7-bit environments like early PCs and telecommunications, with mandatory characters including digits, punctuation, and controls from ISO/IEC 646; it was widely used in Greece until superseded by 8-bit ISO/IEC 8859-7. Limited 7-bit efforts for Arabic and Hebrew predated or paralleled ISO/IEC 646, reflecting pre-standard influences rather than direct derivatives. For Arabic, ASMO 449 (Arab Standards Metrology Organization, 1982) provided a 7-bit encoding registered as ISO-IR-89 and formalized in ISO 9036:1987, assigning 28 Arabic letters to positions 0x41–0x5A and 0x61–0x7A while supporting basic forms without contextual shaping. Hebrew's SI 960, issued by the Standards Institution of Israel in the early 1980s, mapped the 22 Hebrew letters plus finals to 0x60–0x7A, deriving from but not fully conforming to ISO/IEC 646 due to right-to-left directionality issues; both sets evolved primarily into 8-bit standards like ISO/IEC 8859-6 and ISO/IEC 8859-8 for fuller support. These derivatives faced inherent challenges rooted in ISO/IEC 646's left-to-right, unidirectional design, which lacked mechanisms for bidirectional text or right-to-left rendering essential for Arabic and Hebrew. Without support for complex script behaviors like ligatures or vowel diacritics in fixed positions, processing often required manual overrides or 8-bit extensions, limiting utility in mixed-language environments. Their legacy persists in early Unix locales and terminal emulators, where partial implementations enabled basic non-Latin input but highlighted the shift toward ISO/IEC 10646 for comprehensive script handling.

Comparisons

Variant Comparison Overview

ISO/IEC 646 variants differ primarily in a small set of positions within the 7-bit code table, allowing national adaptations while maintaining compatibility with the core structure shared with ASCII. These differences occur in optional positions designated for national or application-specific characters, such as decimal codes 35, 64, and the ranges 91–96 and 123–126, where symbols like currency marks, brackets, and diacritics are swapped to accommodate local linguistic needs. The International Reference Version (IRV) serves as the baseline, with variants like the French (ISO 646-FR), German (ISO 646-DE), and United Kingdom (ISO 646-GB) versions illustrating common modifications. The following table compares key differing positions across the IRV and selected variants, using decimal code points for reference. Positions 95 (_) and 96 (`) are invariant across these, as are most punctuation marks outside the highlighted ranges.
DecimalHexIRVFrench (FR)German (DE)UK (GB)
3523#£#£
6440@à§@
915B[°Ä[
925C\çÖ\
935D]§Ü]
945E^^^^
1237B{éä{
1247C|ùö|
1257D}èü}
1267E~¨ß~
Common patterns in these variants include swaps for currency symbols at position 35, where the pound sign (£) replaces the number sign (#) in British and French contexts to reflect local monetary notation. Position 64 often substitutes the commercial at (@) with language-specific pre-forms, such as the grave-accented a (à) in French or the section sign (§) in German, prioritizing diacritic needs over universal punctuation. The ranges 91–96 and 123–126 frequently trade ASCII brackets and braces for uppercase and lowercase letters with umlauts (e.g., Ä, ä in German) or acute/grave accents (e.g., é, ù in French), enabling direct support for accented characters without combining sequences. These adjustments follow the options outlined in the ISO/IEC 646 standard, ensuring 82 invariant graphic characters for basic interchange while allowing 12 flexible positions for national customization. Such variations introduced compatibility challenges in mixed-language data processing, as a character encoded in one variant—such as £ at 35 in the UK version—might render as # in IRV-based systems, leading to misinterpretations in cross-border file exchanges or databases. In the 1980s, these issues were particularly acute in word processors and early localization efforts, where software like those on mainframes or PCs required variant-specific adaptations to display national characters correctly, often resulting in fragmented international versions that complicated data portability and user interfaces. Standards like ISO 2022 attempted to mitigate this through escape sequences for switching sets, but implementation was cumbersome, underscoring the transition toward 8-bit encodings for broader multilingual support.

References

Add your contribution
Related Hubs
User Avatar
No comments yet.