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.

ISO/IEC 646
_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

003A
58

003B
59
<
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:

KódISO-
IR
StandardZemě a jazyk
CA-1121CSA Z243.4-1985Kanada (nr. 1 alternative, with “î”)
(francouzština, tradiční)
CA-2122CSA Z243.4-1985Kanada (nr. 2 alternative, with “É”)
(francouzština, reformovaný pravopis)
CN057GB/T 1988-80Čínská republika (Basic Latin)
CU151NC 99-10:81Kuba (španělština)
DE021DIN 66003Německo (Němčina)
DKDS 2089Dánsko (Dánština)
FI010SFS 4017Finsko (základní verze)
FR069AFNOR NF Z 62010-1982Francie (francouzština)
FR-0025AFNOR NF Z 62010-1973Francie (v dubnu 1985 nahrazený novější verzí)
GB004BS 4730Spojené království (angličtina)
GR088HOS ELOTŘecko (nahrazený novější verzí)
HU086MSZ 7795/3Maďarsko (maďarština)
IE207NSAI 433:1996Irsko (irština)
 
KódISO-
IR
StandardZemě a jazyk
INV170ISO 646:1983Invariant subset
IRV002ISO 646:1983International Reference Variant
JA014JIS C 6220-1969Japonsko (Rómadži)
JA-O092JIS C 6229-1984Japonsko (OCR-B)
KRKS C 5636-1989Jižní Korea
MT?Malta (maltština, angličtina)
NO060NS 4551 verze 1Norsko
NO-2061NS 4551 verze 2Norsko (v červnu 1987 nahrazený novější verzí)
SE010SEN 85 02 00 Annex BŠvédsko (základní švédština)
SE-C011SEN 85 02 00 Annex CŠvédsko (rozšířená švédština pro jména)
T.61102ITU/CCITT Doporučení T.61International (Teletex)
TWCNS 5205-1996Čínská republika na Tchaj-wanu
US006ANSI X3.4-1968Spojené státy (ASCII)
YU141JUS I.B1.002 (YUSCII)bývalá Jugoslávie (chorvatština, slovinština, srbština, bosenština)

Další proprietární standardy později schválené pro mezinárodní použití některými standardizačními výbory:

KódISO-
IR
OrganizacePůvodZemě a jazyk
ES085ECMAIBMŠpanělsko (baskičtina, španělština, katalánština, galicijština)
esp017ECMAOlivettišpanělština (mezinárodní)
DK-SE009-1SISNATS, základní sadaŠvédsko a Dánsko (novinové texty)
 
KódISO-
IR
OrganizacePůvodZemě a jazyk
FI-SE008-1SISNATS, základní sadaŠvédsko a Finsko (novinové texty)
ita015ECMAOlivettiitalština
PT084ECMAIBMPortugalsko (portugalština, španělština)
por016ECMAOlivettiportugalština (mezinárodní)

Rozdíly v jednotlivých kódováních ukazuje následující tabulka:

KódyZnaky pro jednotlivé znakové sady kompatibilní s ISO 646
bindechexINVT.61USJAJA-OKRCNTWIRVGBDKNONO-2FI,SESE-CDEHUFRFR-0CA-1CA-2IEISitaporPTespESCUMTYU
010 00103422"""""""""""""""""""""""""""""""
010 00113523 ########£##§####££##£#£#£#####
010 01003624 ¤$$$$¥$$$$$$¤¤$¤$$$$$$$$$$$¤$$
010 10013927'''''''''
010 1100442C,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
010 1101452D-------------------------------
010 1111472F///////////////////////////////
100 00006440 @@@@@@@@@@@@@ɧÁààààÓЧ§´§·@@Ž
101 1011915B [[[[[[[[[ÆÆÆÄÄÄÉ°°ââÉÞ°Ãá¡¡ġŠ
101 1100925C  \¥¥\\\\ØØØÖÖÖÖççççÍ\çÇÇÑÑÑżĐ
101 1101935D ]]]]]]]]]ÅÅÅÅÅÜܧ§êêÚÆéÕÕ¿Ç]ħĆ
101 1110945E  ^^^^^^ˆˆˆˆˆˆÜˆˆ^ˆîÉÁÖˆˆˆˆ¿¿ˆČ
101 1111955F_______________________________
110 00009660  `` `````````é`áµµôôóðù`````ċž
111 10111237B  {{{{{{{{æææäääééééééþàãã°´´Ġš
111 11001247C |||||||||øøøööööùùùùí|òççñññŻđ
111 11011257D  }}}}}}}}åååååüüèèèèúæèõõçç[Ħć
111 11101267E  ~ ˜˜˜¯|˜üß˝¨¨ûûáöì°˜˜¨¨Ċč

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.

  1. Invariant Character Handling [online]. NCIP Standing Committee (NCIP-SC) [cit. 2015-02-24]. Dostupné v archivu pořízeném dne 24-12-2013. 
  2. 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

  • Basic Latin (disambiguation)
  • ASCII
  • Extended ASCII
  • EBCDIC
  • ISO/IEC 2022 Information technology: Character code structure and extension techniques
  • ISO 8859
  • ISO 10646
  • ISO 6937 (ANSI)
  • C0 Controls and Basic Latin, v Unicode
  • C Trigraph
  • T.50
  • ISO/IEC JTC 1/SC 2

Externí odkazy