EBCDIC (zkratka anglického Extended Binary Coded Decimal Interchange Code, Rozšířený binárně kódovaný desítkový výměnný kód) je skupina 8bitových znakových kódů navržených firmou IBM na základě kódu používaného pro děrné štítky a z něho odvozených 6bitových kódů BCDIC využívaných v periferiích IBM na přelomu 50. a 60. let. Mimo systémy firmy IBM (a několika dalších firem navržené za účelem kompatibility se systémy IBM) se pro kódování znaků používají spíše kódy vycházející z ASCII (např. ISO/IEC 8859-1 nebo Unicode), EBCDIC je všeobecně považováno za anachronismus.

Jeden znak v základním kódu EBCDIC zabírá jeden byte, jehož horní 4 bity se označují jako zóna a vyjadřují kategorii daného znaku, spodní 4 bity se označují jako číslice a určují konkrétní znak. V některých asijských zemích se používá rozšířená verze EBCDIC, která pro zobrazení čínských, japonských či korejských znaků používá 2bytový kód. Pro přechod ze standardního 1bytového do rozšířeného 2bytového režimu a zpět se používají kódy 0EH a 0FH.

Existuje mnoho variant kódu EBCDIC pro různé země. Tyto kódové stránky se označují číselným kódem známým jako CCSID (Coded Character Set IDentifier). Některé znaky existují v různých kódových stránkách na různých pozicích, na což je třeba dát pozor při přenosu dat mezi různými systémy podporujícími EBCDIC.

Jednou z výrazných nevýhod kódu EBCDIC je, že znaky latinky netvoří spojitou posloupnost, takže např. běžný regulární výraz [a-z] používaný pro výběr všech malých písmen anglické abecedy by v EBCDIC nefungoval.

Rozložení

editovat

Kódy 0–63 a 255 jsou řídící, zbytek jsou platné znaky. Následující tabulka popisuje kódovou stránku 870 (tzv. Latin 2 Multilingual), zhruba odpovídající ASCII kódové stránce ISO-8859-2.

Dec Hex Znak Unicode
0 00 NULL U+0000
1 01 SOH U+0001
2 02 STX U+0002
3 03 ETX U+0003
4 04 PF
5 05 HT U+0009
6 06 LC
7 07 DEL U+007F
8 08 GE
9 09 RLF
10 0A SMM
11 0B VT U+000B
12 0C FF U+000C
13 0D CR U+000D
14 0E SO U+000E
15 0F SI U+000F
16 10 DLE U+0010
17 11 DC1 U+0011
18 12 DC2 U+0012
19 13 TM
20 14 RES
21 15 NL
22 16 BS U+0008
23 17 IL
24 18 CAN U+0018
25 19 EM U+0019
26 1A CC
27 1B CU1
28 1C IFS U+001C
29 1D IGS U+001D
30 1E IRS U+001E
31 1F IUS U+001F
32 20 DS
33 21 SOS
34 22 FS
35 23
36 24 BYP
37 25 LF U+000A
38 26 ETB U+0017
39 27 ESC U+001B
40 28
41 29
42 2A SM
43 2B CU2
44 2C
45 2D ENQ U+0005
46 2E ACK U+0006
47 2F BEL U+0007
48 30
49 31
50 32 SYN U+0016
51 33
52 34 PN
53 35 RS
54 36 UC
55 37 EOT U+0004
56 38
57 39
58 3A
59 3B CU3
60 3C DC4 U+0014
61 3D NAK U+0015
62 3E
63 3F SUB U+001A
Dec Hex Znak Unicode
64 40 mezera U+0020
65 41 pevná mezera U+00A0
66 42 â U+00E2
67 43 ä U+00E4
68 44 ţ U+0163
69 45 á U+00E1
70 46 ă U+0103
71 47 č U+010D
72 48 ç U+00E7
73 49 ć U+0107
74 4A [ U+005B
75 4B . U+002E
76 4C < U+003C
77 4D ( U+0028
78 4E + U+002B
79 4F ! U+0021
80 50 & U+0026
81 51 é U+00E9
82 52 ę U+0119
83 53 ë U+00EB
84 54 ů U+016F
85 55 í U+00ED
86 56 î U+00EE
87 57 ľ U+013E
88 58 ĺ U+013A
89 59 ß U+00DF
90 5A ] U+005D
91 5B $ U+0024
92 5C * U+002A
93 5D ) U+0029
94 5E ; U+003B
95 5F ^ U+005E
96 60 - U+002D
97 61 / U+002F
98 62 Â U+00C2
99 63 Ä U+00C4
100 64 ˝ U+02DD
101 65 Á U+00C1
102 66 Ă U+0102
103 67 Č U+010C
104 68 Ç U+00C7
105 69 Ć U+0106
106 6A U+007C
107 6B , U+002C
108 6C % U+0025
109 6D _ U+005F
110 6E > U+003E
111 6F ? U+003F
112 70 ˇ U+02C7
113 71 É U+00C9
114 72 Ę U+0118
115 73 Ë U+00CB
116 74 Ů U+016E
117 75 Í U+00CD
118 76 Î U+00CE
119 77 Ľ U+013D
120 78 Ĺ U+0139
121 79 ` U+0060
122 7A : U+003A
123 7B # U+0023
124 7C @ U+0040
125 7D ' U+0027
126 7E = U+003D
127 7F " U+0022
Dec Hex Znak Unicode
128 80 ˘ U+02D8
129 81 a U+0061
130 82 b U+0062
131 83 c U+0063
132 84 d U+0064
133 85 e U+0065
134 86 f U+0066
135 87 g U+0067
136 88 h U+0068
137 89 i U+0069
138 8A ś U+015B
139 8B ň U+0148
140 8C đ U+0111
141 8D ý U+00FD
142 8E ř U+0159
143 8F ş U+015F
144 90 ° U+00B0
145 91 j U+006A
146 92 k U+006B
147 93 l U+006C
148 94 m U+006D
149 95 n U+006E
150 96 o U+006F
151 97 p U+0070
152 98 q U+0071
153 99 r U+0072
154 9A ł U+0142
155 9B ń U+0144
156 9C š U+0161
157 9D ¸ U+00B8
158 9E ˛ U+02DB
159 9F ¤ U+00A4
160 A0 ą U+0105
161 A1 ~ U+007E
162 A2 s U+0073
163 A3 t U+0074
164 A4 u U+0075
165 A5 v U+0076
166 A6 w U+0077
167 A7 x U+0078
168 A8 y U+0079
169 A9 z U+007A
170 AA Ś U+015A
171 AB Ň U+0147
172 AC Ð U+00D0
173 AD Ý U+00DD
174 AE Ř U+0158
175 AF Ş U+015E
176 B0 ˙ U+02D9
177 B1 Ą U+0104
178 B2 ż U+017C
179 B3 Ţ U+0162
180 B4 Ż U+017B
181 B5 § U+00A7
182 B6 ž U+017E
183 B7 ź U+017A
184 B8 Ž U+017D
185 B9 Ź U+0179
186 BA Ł U+0141
187 BB Ń U+0143
188 BC Š U+0160
189 BD ¨ U+00A8
190 BE ´ U+00B4
191 BF × U+00D7
Dec Hex Znak Unicode
192 C0 { U+007B
193 C1 A U+0041
194 C2 B U+0042
195 C3 C U+0043
196 C4 D U+0044
197 C5 E U+0045
198 C6 F U+0046
199 C7 G U+0047
200 C8 H U+0048
201 C9 I U+0049
202 CA měkké dělítko U+00AD
203 CB ô U+00F4
204 CC ö U+00F6
205 CD ŕ U+0155
206 CE ó U+00F3
207 CF ő U+0151
208 D0 } U+007D
209 D1 J U+004A
210 D2 K U+004B
211 D3 L U+004C
212 D4 M U+004D
213 D5 N U+004E
214 D6 O U+004F
215 D7 P U+0050
216 D8 Q U+0051
217 D9 R U+0052
218 DA Ě U+011A
219 DB ű U+0171
220 DC ü U+00FC
221 DD ť U+0165
222 DE ú U+00FA
223 DF ě U+011B
224 E0 \ U+005C
225 E1 ÷ U+00F7
226 E2 S U+0053
227 E3 T U+0054
228 E4 U U+0055
229 E5 V U+0056
230 E6 W U+0057
231 E7 X U+0058
232 E8 Y U+0059
233 E9 Z U+005A
234 EA ď U+010F
235 EB Ô U+00D4
236 EC Ö U+00D6
237 ED Ŕ U+0154
238 EE Ó U+00D3
239 EF Ő U+0150
240 F0 0 U+0030
241 F1 1 U+0031
242 F2 2 U+0032
243 F3 3 U+0033
244 F4 4 U+0034
245 F5 5 U+0035
246 F6 6 U+0036
247 F7 7 U+0037
248 F8 8 U+0038
249 F9 9 U+0039
250 FA Ď U+010E
251 FB Ű U+0170
252 FC Ü U+00DC
253 FD Ť U+0164
254 FE Ú U+00DA
255 FF EO

Externí odkazy

editovat