ISO/IEC 646
ISO/IEC 646:1991 Informační technologie – 7bitová znaková sada ISO pro výměnu informací (anglicky Information technology — ISO 7-bit coded character set for information interchange) je standard Mezinárodní organizace pro normalizaci (ISO), který od svého prvního vydání v roce 1972 definoval 7bitové kódování znaků, z něhož je odvozeno několik národních standardů. Tento standard byl také přijat organizací ECMA jako ECMA-6.
ISO/IEC 646 stanovuje, jaké znaky v kódování ASCII lze nahrazovat národními znaky při vytváření 7bitových národních kódování znaků. Zároveň definuje mezinárodní referenční verzi (anglicky International Reference Version, IRV), která je ve verzi ISO/IEC 646:1991 shodná s kódováním ASCII.
Podle ISO/IEC 646 větší část znaků tvoří základní znakovou sadu, která je neměnná (invariantní)[1]. Protože tato část ISO/IEC 646, která tvoří invariantní znakovou sadu sdílenou všemi zeměmi, definovala pouze znaky použité v základní abecedě ISO Latin, země, v nichž se používají jiné znaky, si musely vytvořit národní varianty ISO 646, aby byly schopné používat svá národní písma. Protože v té době se obecně nepoužívaly 8bitové bajty, národní znaky se musely vejít do rozsahu dostupného pomocí 7bitového kódování, což znamená, že některé znaky dostupné v ASCII v národních variantách ISO 646 nejsou k dispozici.
Historie
ISO/IEC 646 a jeho předchůdce ASCII (ANSI X3.4) do značné míry stanovily existující praxi při používání znakových kódování v odvětví telekomunikací.
Protože ASCII neobsahovalo znaky potřebné pro jiné jazyky než angličtinu, bylo vytvořeno několik národních variant, ve kterých jsou některé méně používané znaky nahrazeny znaky potřebnými v příslušném jazyce. Kvůli těmto rozdílům vznikla mezinárodní referenční verze ISO/IEC 646 (anglicky International Reference Version, IRV), která usilovala o omezení nahrazovaných znaků na stejné znaky ve všech variantách. Původní verze ISO 646 IRV se lišila od ASCII pouze nahrazením znaku s kódem 0024, který je v ASCII použit pro znak dolar za mezinárodní znak měny (¤). Poslední verze ISO 646:1991 z roku 1991 je také známá jako T.50 Mezinárodní referenční abeceda (anglicky International Reference Alphabet, IRA), dříve Mezinárodní abeceda č. 5 (anglicky International Alphabet No. 5, IA5). Tento standard umožňuje používat celkem 12 pozic pro národní znaky (2 alternativní grafické znaky a 10 národních znaků). Mezi těmito variantami je explicitně definováno ISO 646:1991 IRV (International Reference Version), které je identické s ASCII[2].
Řada standardů ISO 8859 používá 8bitová kódování, která nahrazují mezinárodní standard ISO 646 i jeho národní varianty rozšířením kódu o jeden bit, což poskytuje dalších 96 kódových pozic, takže nahrazování ASCII kódu není potřebné. Standard ISO 10646 vyvíjený v součinnosti s Unicode nahrazuje znakové sady ISO 646 a ISO 8859 jednotným kódováním používajícím 21bitové kódy.
Vliv ISO 646 je vidět ve Windows, v jejichž některých znakových sadách je znak zpětné lomítko nahrazen znakem ¥ nebo jinými znaky. Bez ohledu na to, že znak ¥ byl obsažen (na jiné pozici) už v původním kódování na počítačích IBM PC, existuje tolik textů (v Japonštině), které pro znak ¥ používají jí kód 5C16, že na této pozici mají znak ¥ i v některé moderní fonty pro Windows. Dalším dědictvím je existence trojznaků (anglicky trigraphs) v programovacím jazyce C.
Rozložení znaků
Následující tabulka ukazuje znakovou sadu ISO/IEC 646. U každého znaku je uveden jeho šestnáctkový a desítkový kód. Šedě jsou vyznačena políčka, jejichž reprezentace se v různých zemích liší. Tato políčka jsou podrobněji rozebrána v další tabulce.
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0_ |
NUL 0000 0 |
SOH 0001 1 |
STX 0002 2 |
ETX 0003 3 |
EOT 0004 4 |
ENQ 0005 5 |
ACK 0006 6 |
BEL 0007 7 |
BS 0008 8 |
HT 0009 9 |
LF 000A 10 |
VT 000B 11 |
FF 000C 12 |
CR 000D 13 |
SO 000E 14 |
SI 000F 15 |
1_ |
DLE 0010 16 |
DC1 0011 17 |
DC2 0012 18 |
DC3 0013 19 |
DC4 0014 20 |
NAK 0015 21 |
SYN 0016 22 |
ETB 0017 23 |
CAN 0018 24 |
EM 0019 25 |
SUB 001A 26 |
ESC 001B 27 |
FS 001C 28 |
GS 001D 29 |
RS 001E 30 |
US 001F 31 |
2_ |
SP 0020 32 |
! 0021 33 |
" 0022 34 |
35 |
36 |
% 0025 37 |
& 0026 38 |
' 0027 39 |
( 0028 40 |
) 0029 41 |
* 002A 42 |
+ 002B 43 |
, 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 |
|
|
< 003C 60 |
61 003D 075 |
> 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 |
Národní varianty
Některé národní varianty jsou uvedeny v následující tabulce:
|
|
Další proprietární standardy později schválené pro mezinárodní použití některými standardizačními výbory:
|
|
Rozdíly v jednotlivých kódováních ukazuje následující tabulka:
Kódy | Znaky pro jednotlivé znakové sady kompatibilní s ISO 646 | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
bin | dec | 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 | ~ | ‾ | ‾ | ‾ | ‾ | ˜ | ˜ | ˜ | ¯ | | | ˜ | ü | ß | ˝ | ¨ | ¨ | û | û | á | ö | ì | ° | ˜ | ˜ | ¨ | ¨ | Ċ | č |
Políčka v této tabulce vybarvená jinak než bíle zdůrazňují rozdíly mezi americkou variantou použitou v základní podsadě Latin standardu ISO/IEC 10646 a Unicode.
Znaky v políčkách podbarvených červeně mohou být použity jako kombinační znaky pokud jim předchází nebo pokud za nimi následuje řídicí znak backspace. Tato metoda kódování se však považuje za nedoporučovanou.
Když se později rozšířila vícebitová kódování, ISO 8859, různými výrobci definovaná kódování a později ISO 10646 se začaly přednostně používat místo těchto národních sad.
Varianty ASCII, které nepatří do ISO 646
Existuje několik 7bitových znakových sad odvozených od ASCII, které nejsou součástí standardu ISO 646, mezi které patří:
- 7bitové kódování ELOT 927 pro řečtinu. Pro řecké znaky jsou použity kódy 0x61–0x71 a 0x73–0x79 nahrazující malá písmena.
- 7bitové kódování KOI-7 (malé KOI) pro cyrilici. Znaky Cyrilice jsou namapovány na kódy 0x60–0x7E místo malých písmen. Kódování je nahrazeno novějšími variantami KOI-8.
- 7bitové kódování SI 960 pro hebrejštinu. Pro hebrejské znaky jsou použity kódy 0x41–0x5A a 0x60–0x6A místo malých i velkých písmen. Texty v tomto kódování byly vždy ukládány ve vizuálním pořadí.
- 7bitové kódování ASMO 449 pro arabštinu. Arabská abeceda je namapována na kódy 0x41–0x5A a 0x60–0x6A místo velkých i malých písmen latinky. Toto mapování s nastaveným nejvyšším bitem je ISO 8859-6.
Odkazy
Reference
V tomto článku byl použit překlad textu z článku ISO/IEC 646 na anglické Wikipedii.
- Invariant Character Handling [online]. NCIP Standing Committee (NCIP-SC) [cit. 2015-02-24]. Dostupné v archivu pořízeném dne 24-12-2013.
- Yuri Demchenko. Section 4. INTERNATIONAL STANDARDIZATION OF 7-BIT CODES, ISO 646 [online]. Terena.org [cit. 2012-08-13]. Dostupné online.
Související články
Externí odkazy
- Standard ECMA-6
- Zeichensatz nach ISO 646 (ASCII) (německy)
- Historie na WWW serveru věnovanému GNU Aspellu
- Character Tables by Koichi Yasuoka (viz Domestic ISO646 Character Tables and Quasi-ISO646 Character Tables)
- Nástroj pro doplnění turecké diakritiky Používá četnosti pentagramů v turečtině.