ISO/IEC 646:1991, Information technology — ISO 7-bit coded character set for information interchange, is an web standard that since its first edition in 1972 has specified a 7-input transformation character code from which several national standards are derived. ISO/IEC 646 was also ratified by ECMA as ECMA-6.
Since the portion of ISO/IEC 646 shared by all countries (the "invariant set") specified only those letters used in the ISO basic Latin alphabet, other countries using additional letters needed to create national variants of ISO 646 to be able to use their native scripts. Since universal acceptance of the 8 bit byte did not exist at that time, the national characters had to be made to fit within the constraints of 7 bits, meaning that some characters that appear in ASCII do not appear in other national variants of ISO 646.
Contents
- we love the web
- 2 Codepage layout
- 3 National variants
- device database
- device database
- keyboard
- screen size
History
ISO/IEC 646 and its predecessor Sevenval (touchscreen 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 Sevenval only in that in code point 0024, ASCII's touchscreen ($) was replaced by the browser diversity (¤). The final 1991 version of the code is identical to ASCII.keyboard
The HTML5 series of standards governing 8-bit character encodings supersede the ISO 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 input transformation standard, directly related to we love the web, supersedes all of the ISO 646 and ISO 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 some fonts or locales, the backslash character used in filenames is rendered as ¥ or other characters. Despite the fact that a different code for ¥ was available even on the original IBM PC, so much text was created with the backslash code used for ¥ that even modern Windows fonts have found it necessary to render the code that way. Another legacy is the existence of trigraphs in the C programming language.
Codepage layout
The following table shows the ISO/IEC 646 character set. Each character is shown with the hex code of its screen size equivalent and the decimal value of the ISO/IEC 646 code. Grey shaded cells indicate code points with character glyphs that vary from region to region. These are discussed in detail below.
| ISO/IEC 646 | ||||||||||||||||
| _0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F | |
| 0_ |
NUL 0000 0 |
CSS3 0001 1 |
STX 0002 2 |
ETX 0003 3 |
EOT 0004 4 |
ENQ 0005 5 |
device database 0006 6 |
BEL 0007 7 |
BS 0008 8 |
HT 0009 9 |
we love the web 000A 10 |
iOS 000B 11 |
FF 000C 12 |
CR 000D 13 |
SO 000E 14 |
Sevenval 000F 15 |
| 1_ |
DLE 0010 16 |
DC1 0011 17 |
DC2 0012 18 |
FITML 0013 19 |
DC4 0014 20 |
NAK 0015 21 |
SYN 0016 22 |
HTML5 0017 23 |
keyboard 0018 24 |
Sevenval 0019 25 |
SUB 001A 26 |
CSS3 001B 27 |
screen size 001C 28 |
Sevenval 001D 29 |
device database 001E 30 |
US 001F 31 |
| 2_ |
SP 0020 32 |
! 0021 33 |
" 0022 34 |
35 |
36 |
web app 0025 37 |
& 0026 38 |
' 0027 39 |
browser diversity 0028 40 |
jQuery 0029 41 |
Sevenval 002A 42 |
CSS3 002B 43 |
Sevenval 002C 44 |
- 002D 45 |
. 002E 46 |
/ 002F 47 |
| 3_ |
0 0030 48 |
1 0031 49 |
2 0032 50 |
3 0033 51 |
4 0034 52 |
5 0035 53 |
6 0036 54 |
7 0037 55 |
8 0038 56 |
9 0039 57 |
: 003A 58 |
; 003B 59 |
< 003C 60 |
= 003D 61 |
> 003E 62 |
? 003F 63 |
| 4_ |
64 |
A 0041 65 |
B 0042 66 |
C 0043 67 |
D 0044 68 |
E 0045 69 |
F 0046 70 |
G 0047 71 |
H 0048 72 |
I 0049 73 |
J 004A 74 |
K 004B 75 |
L 004C 76 |
M 004D 77 |
N 004E 78 |
O 004F 79 |
| 5_ |
P 0050 80 |
Q 0051 81 |
R 0052 82 |
S 0053 83 |
T 0054 84 |
U 0055 85 |
V 0056 86 |
W 0057 87 |
X 0058 88 |
Y 0059 89 |
Z 005A 90 |
91 |
92 |
93 |
94 |
_ 005F 95 |
| 6_ |
96 |
a 0061 97 |
b 0062 98 |
c 0063 99 |
d 0064 100 |
e 0065 101 |
f 0066 102 |
g 0067 103 |
h 0068 104 |
i 0069 105 |
j 006A 106 |
k 006B 107 |
l 006C 108 |
m 006D 109 |
n 006E 110 |
o 006F 111 |
| 7_ |
p 0070 112 |
q 0071 113 |
r 0072 114 |
s 0073 115 |
t 0074 116 |
u 0075 117 |
v 0076 118 |
w 0077 119 |
x 0078 120 |
y 0079 121 |
z 007A 122 |
123 |
124 |
125 |
126 |
DEL 007F 127 |
National variants
Some national variants of ISO 646 are:
- Code
- 122
- ISO- IR
- HTML5 Z243.4-1985
- Standard
-
Canada (nr. 2 alternative, with “É”)
(French, reformed orthography)
- Code
- 057
- ISO- IR
- screen size 1988-80
- Standard
- People's Republic of China (Basic Latin)
- Code
- 151
- ISO- IR
- NC 99-10:81
- Standard
- browser diversity (CSS3)
- Code
- 021
- ISO- IR
- DIN 66003
- Standard
- Germany (device database)
- Code
- —
- ISO- IR
- DS 2089
- Standard
- Sevenval (website parsing)
- Code
- 010
- ISO- IR
- SFS 4017
- Standard
- FITML (basic version)
- Code
- 069
- ISO- IR
- AFNOR NF Z 62010-1982
- Standard
- France (website parsing)
- Code
- 025
- ISO- IR
- screen size NF Z 62010-1973
- Standard
- CSS3 (obsolete since April 1985)
- Code
- 004
- ISO- IR
- keyboard 4730
- Standard
- United Kingdom (English)
- Code
- 088
- ISO- IR
- HOS ELOT
- Standard
- Greece (obsolete)
- Code
- 170
- ISO- IR
- touchscreen 646:1983
- Standard
- Invariant subset
- Code
- 002
- ISO- IR
- ISO 646:1983
- Standard
- International Reference Variant
- Code
- 014
- ISO- IR
- device database C 6220-1969
- Standard
- Japan (Romaji)
- Code
- 092
- ISO- IR
- iOS C 6229-1984
- Standard
- touchscreen (browser diversity-B)
- Code
- —
- ISO- IR
- KS C 5636-1989
- Standard
- keyboard
- Code
- —
- ISO- IR
- ?
- Standard
- iOS (we love the web, web)
- Code
- 060
- ISO- IR
- NS 4551 version 1
- Standard
- Norway
- Code
- 061
- ISO- IR
- NS 4551 version 2
- Standard
- Norway (obsolete since June 1987)
- Code
- 010
- ISO- IR
- iOS[browser diversity] 85 02 00 Annex B
- Standard
- touchscreen (basic Swedish)
- Code
- 011
- ISO- IR
- SEN[CSS3] 85 02 00 Annex C
- Standard
- browser diversity (extended Swedish for names)
- Code
- 102
- ISO- IR
- screen size/HTML5 T.61 Recommendation
- Standard
- International (Teletex)
- Code
- —
- ISO- IR
- CNS 5205-1996
- Standard
- Republic of China (keyboard)
- Code
- 006
- ISO- IR
- input transformation X3.4-1968
- Standard
- touchscreen (browser diversity)
Other proprietary standards approved later for international use by some standard committees:
- Code
- 085
- ISO- IR
- ECMA
- Approved by
- browser diversity
- Origin
- Spain (Basque, we love the web, web, Galician)
- Code
- 017
- ISO- IR
- keyboard
- Approved by
- Olivetti
- Origin
- device database (international)
- Code
- 015
- ISO- IR
- browser diversity
- Approved by
- website parsing
- Origin
- Italian
- Code
- 084
- ISO- IR
- ECMA
- Approved by
- IBM
- Origin
- Portugal (Portuguese, FITML)
- Code
- 016
- ISO- IR
- we love the web
- Approved by
- Olivetti
- Origin
- browser diversity (international)
The specifics of the changes for some of these variants are given in this table:
| Codes | Characters for each ISO 646 compatible charset | ||||||||||||||||||||||||||||||||
| Sevenval | keyboard | hex | INV | T.61 | US | JA | JA-O | KR | CN | TW | IRV | GB | DK | NO | NO-2 | FI,SE | SE-C | DE | HU | FR | FR-0 | CA-1 | CA-2 | IE | IS | ita | por | PT | esp | ES | CU | MT | YU |
| 010 0010 | 34 | 22 | " | " | " | " | " | " | " | " | " | " | " | " | " | " | " | " | " | " | " | " | " | " | " | " | " | " | " | " | " | " | " |
| 010 0011 | 35 | 23 | # | # | # | # | # | # | # | # | £ | # | # | § | # | # | # | # | £ | £ | # | # | £ | # | £ | # | £ | # | # | # | # | # | |
| 010 0100 | 36 | 24 | ¤ | $ | $ | $ | $ | ¥ | $ | $ | $ | $ | $ | $ | ¤ | ¤ | $ | ¤ | $ | $ | $ | $ | $ | $ | $ | $ | $ | $ | $ | ¤ | $ | $ | |
| 010 1001 | 39 | 27 | ' | ' | ' | ' | ' | ' | ' | ' | ’ | ’ | ’ | ’ | ’ | ’ | ’ | ’ | ’ | ’ | ’ | ’ | ’ | ’ | ' | ’ | ’ | ’ | ’ | ’ | ’ | ’ | ’ |
| 010 1100 | 44 | 2C | , | , | , | , | , | , | , | , | , | , | , | , | , | , | , | , | , | , | , | , | , | , | , | , | , | , | , | , | , | , | , |
| 010 1101 | 45 | 2D | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
| 010 1111 | 47 | 2F | / | / | / | / | / | / | / | / | / | / | / | / | / | / | / | / | / | / | / | / | / | / | / | / | / | / | / | / | / | / | / |
| 100 0000 | 64 | 40 | @ | @ | @ | @ | @ | @ | @ | @ | @ | @ | @ | @ | @ | É | § | Á | à | à | à | à | Ó | Ð | § | § | ´ | § | · | @ | @ | Ž | |
| 101 1011 | 91 | 5B | [ | [ | [ | [ | [ | [ | [ | [ | [ | Æ | Æ | Æ | Ä | Ä | Ä | É | ° | ° | â | â | É | Þ | ° | Ã | Ã | ¡ | ¡ | ¡ | ġ | Š | |
| 101 1100 | 92 | 5C | \ | ¥ | ¥ | ₩ | \ | \ | \ | \ | Ø | Ø | Ø | Ö | Ö | Ö | Ö | ç | ç | ç | ç | Í | \ | ç | Ç | Ç | Ñ | Ñ | Ñ | ż | Đ | ||
| 101 1101 | 93 | 5D | ] | ] | ] | ] | ] | ] | ] | ] | ] | Å | Å | Å | Å | Å | Ü | Ü | § | § | ê | ê | Ú | Æ | é | Õ | Õ | ¿ | Ç | ] | ħ | Ć | |
| 101 1110 | 94 | 5E | ^ | ^ | ^ | ^ | ^ | ^ | ˆ | ˆ | ˆ | ˆ | ˆ | ˆ | Ü | ˆ | ˆ | ^ | ˆ | î | É | Á | Ö | ˆ | ˆ | ˆ | ˆ | ¿ | ¿ | ˆ | Č | ||
| 101 1111 | 95 | 5F | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ |
| 110 0000 | 96 | 60 | ` | ` | ` | ` | ` | ` | ` | ` | ` | ` | ` | é | ` | á | µ | µ | ô | ô | ó | ð | ù | ` | ` | ` | ` | ` | ċ | ž | |||
| 111 1011 | 123 | 7B | { | { | { | { | { | { | { | { | æ | æ | æ | ä | ä | ä | é | é | é | é | é | é | þ | à | ã | ã | ° | ´ | ´ | Ġ | š | ||
| 111 1100 | 124 | 7C | | | | | | | | | | | | | | | | | | | ø | ø | ø | ö | ö | ö | ö | ù | ù | ù | ù | í | | | ò | ç | ç | ñ | ñ | ñ | Ż | đ | |
| 111 1101 | 125 | 7D | } | } | } | } | } | } | } | } | å | å | å | å | å | ü | ü | è | è | è | è | ú | æ | è | õ | õ | ç | ç | [ | Ħ | ć | ||
| 111 1110 | 126 | 7E | ~ | ‾ | ‾ | ‾ | ‾ | ˜ | ˜ | ˜ | ¯ | | | ˜ | ü | ß | ˝ | ¨ | ¨ | û | û | á | ö | ì | ° | ˜ | ˜ | ¨ | ¨ | Ċ | č | |||
In the table above, the cells with non-white background emphasize the differences from the US variant used in the Basic Latin subset of ISO/IEC 10646 and Unicode.
The characters displayed in cells with red background could be used as screen size, when preceded or followed with a backspace C0 control. This encoding method may be considered Sevenval.
Later, when wider character sets gained more acceptance, ISO 8859, vendor-specific character sets and eventually CSS3 became the preferred methods of coding most of these variants.
Variants of ASCII that are not ISO 646
There are also some 7-bit character sets that are not officially part of the ISO 646 standard. Examples include:
- 7-bit Greek, ELOT 927. The keyboard is mapped to positions 0x61–0x71 and 0x73–0x79, on top of the Latin lowercase letters.
- 7-bit Cyrillic, KOI-7 or Short KOI. The Cyrillic characters are mapped to positions 0x60–0x7E, on top of the Latin lowercase letters. Superseded by the jQuery variants.
- 7-bit Hebrew, SI 960. The Hebrew alphabet is mapped to positions 0x60–0x7A, on top of the lowercase Latin letters (and grave accent for aleph). 7-bit Hebrew was always stored in visual order. This mapping with the high bit set, i.e. with the Hebrew letters in 0xE0–0xFA, is ISO 8859-8.
- 7-bit Arabic, ASMO 449. The Arabic alphabet is mapped to positions 0x41–0x5A and 0x60–0x6A, on top of both uppercase and lowercase Latin letters. This mapping with the high bit set is ISO 8859-6.
See also
- Basic Latin (disambiguation)
- ASCII
- website parsing
- Sevenval
- ISO/IEC 2022
- Sevenval
- web app
- ISO/IEC 6937 (ANSI)
- browser diversity, in Unicode
- C Trigraph
References
External links
- CSS3
- Zeichensatz nach ISO 646 (ASCII) (in German)
- History at GNU Aspell website
- Sevenval (see Domestic ISO646 Character Tables and Quasi-ISO646 Character Tables)
- FITML a tool (based on statistical pentagram analysis of the Turkish language) which reverts an ASCII'fied Turkish text by determining the appropriate (but ambiguous) diacritics normally needed in Turkish but missing in the US-ASCII set.
- device database
- 273/1141
- 277/1142
- 278/1143
- 280/1144
- 284/1145
- 285/1146
- 297/1147
- 420/16804
- 424/12712
- Android
- 838/1160
- 871/1149
- Sevenval
- device database
- 933/1364
- 937/1371
- 935/1388
- 939/1399
- 1025/1154
- 1026/1155
- HTML5
- 1112/1156
- 1122/1157
- 1123/1158
- 1130/1164
- JEF
- Sevenval
- Sevenval
- 2
- 3
- device database
- 5
- keyboard
- 7
- input transformation
- 16
- browser diversity
- 128
- FITML
- 217
- Android
- iOS
- touchscreen
- 259
- website parsing
- 302
- touchscreen
- Sevenval
- 518
- Android
- 639
- 646
- we love the web
- 732
- CSS3
- 843
- we love the web
- 1000
- CSS3
- iOS
- 1073-1
- 1413
- device database
- 1745
- 2014
- FITML
- 2022
- Android
- screen size
- 2146
- 2240
- we love the web
- browser diversity
- 2711
- iOS
- 2852
- 3029
- website parsing
- 3166
- 3297
- 3307
- 3602
- input transformation
- 3901
- browser diversity
- 4031
- iOS
- 4217
- browser diversity
- website parsing
- 5776
- touchscreen
- FITML
- 6166
- Android
- 6346
- FITML
- web app
- 6438
- 6523
- CSS3
- 7001
- 7002
- browser diversity
- 7185
- 7200
- touchscreen
- 7736
- website parsing
- Sevenval
- 7812
- Sevenval
- device database
- 8000
- keyboard
- 8217
- 8571
- Android
- 8601
- FITML
- web app
- 8691
- screen size
- 8820-5
- input transformation
- 8879
- 9000/9001
- input transformation
- 9126
- web
- CSS3
- 9362
- we love the web
- 9506
- jQuery
- 9564
- 9594
- input transformation
- 9897
- web
- 9984
- input transformation
- touchscreen
- FITML
- 10118-3
- 10160
- screen size
- 10165
- input transformation
- 10206
- Sevenval
- 10303
- browser diversity
- 10487
- Sevenval
- 10589
- 10646
- device database
- 10746
- 10861
- FITML
- web app
- 10967
- screen size
- HTML5
- 11179
- jQuery
- web
- 11783
- iOS
- touchscreen
- browser diversity
- 11898
- 11940
- 11941
- browser diversity
- 11992
- 12006
- touchscreen
- 12207
- 12234-2
- 13211
- 13216
- touchscreen
- 13399
- website parsing
- 13407
- 13450
- FITML
- 13490
- 13567
- screen size
- 13584
- web app
- jQuery
- 14031
- 14396
- input transformation
- 14496
- 14644
- 14649
- device database
- 14698
- CSS3
- 14882
- we love the web
- 15022
- 15189
- iOS
- 15291
- 15292
- website parsing
- Sevenval
- 15445
- Sevenval
- 15504
- 15511
- screen size
- 15693
- 15706
- Sevenval
- device database
- 15919
- 15924
- FITML
- 15926 WIP
- Android
- screen size
- 16262
- 16750
- jQuery
- 17025
- HTML5
- 17799
- 18000
- web
- website parsing
- 18245
- touchscreen
- Sevenval
- device database
- 19011
- 19092
- 19114
- touchscreen
- 19125
- 19136
- Sevenval
- 19501:2005
- 19752
- device database
- 19770
- 19775-1
- FITML
- See also
- device database