ASCII — A merican S tandard C ode for I nformation I nterchange.
ASCII была разработана (1963 год) для кодирования символов, коды которых помещались в 7 бит (128 символов). Со временем кодировка была расширена до 8-ми бит (256 символов), коды первых 128-и символов не изменились.
Управляющие символы ASCII (код символа 0-31)
Первые 32 символа в ASCII-таблице не имеют печатных кодов и используются для управления периферийными устройствами, телетайпами, принтерами и т.д.
DEC
OCT
HEX
BIN
Symbol
HTML Number
HTML Name
Description
0
000
0x00
00000000
NUL \0
& #000;
Null char
1
001
0x01
00000001
SOH
& #001;
Start of Heading
2
002
0x02
00000010
STX
& #002;
Start of Text
3
003
0x03
00000011
ETX
& #003;
End of Text
4
004
0x04
00000100
EOT
& #004;
End of Transmission
5
005
0x05
00000101
ENQ
& #005;
Enquiry
6
006
0x06
00000110
ACK
& #006;
Acknowledgment
7
007
0x07
00000111
BEL
& #007;
Bell
8
010
0x08
00001000
BS
& #008;
Back Space
9
011
0x09
00001001
HT \t
& #009;
Tab
10
012
0x0A
00001010
LF \n
& #010;
Новая строка
11
013
0x0B
00001011
VT
& #011;
Vertical Tab
12
014
0x0C
00001100
FF
& #012;
Form Feed
13
015
0x0D
00001101
CR \r
& #013;
Возврат каретки
14
016
0x0E
00001110
SO
& #014;
Shift Out / X-On
15
017
0x0F
00001111
SI
& #015;
Shift In / X-Off
16
020
0x10
00010000
DLE
& #016;
Data Line Escape
17
021
0x11
00010001
DC1
& #017;
Device Control 1 (oft. XON)
18
022
0x12
00010010
DC2
& #018;
Device Control 2
19
023
0x13
00010011
DC3
& #019;
Device Control 3 (oft. XOFF)
20
024
0x14
00010100
DC4
& #020;
Device Control 4
21
025
0x15
00010101
NAK
& #021;
Negative Acknowledgement
22
026
0x16
00010110
SYN
& #022;
Synchronous Idle
23
027
0x17
00010111
ETB
& #023;
End of Transmit Block
24
030
0x18
00011000
CAN
& #024;
Cancel
25
031
0x19
00011001
EM
& #025;
End of Medium
26
032
0x1A
00011010
SUB
& #026;
Substitute
27
033
0x1B
00011011
ESC
& #027;
Escape
28
034
0x1C
00011100
FS
& #028;
File Separator
29
035
0x1D
00011101
GS
& #029;
Group Separator
30
036
0x1E
00011110
RS
& #030;
Record Separator
31
037
0x1F
00011111
US
& #031;
Unit Separator
DEC
OCT
HEX
BIN
Symbol
HTML Number
HTML Name
Description
Печатные символы ASCII (код символа 32-127)
Буквы, цифры, знаки препинания и другие символы расположенные на клавиатуре (англ.).
ASCII часто используется в программировании для определения кодов нажатых символов на клавиатуре, либо кодирования/декодирования, экранирования, анализа данных. Нередко можно встретить кодированные символы в адресах интернет-страниц.
Как пользоваться таблицей?
Красным цветом выделены управляющие символы.
Зеленым цветом выделены числа.
Желтым цветом выделены символы, которые могут быть заменены в различных национальных версиях таблицы ASCII.
Синим цветом выделены буквы английского алфавита.
Остальные символы зависят от национальной версии таблицы ASCII. Выбрать нужную национальную версию можно в списке кодировок, находящемся над таблицей.
Чтобы получить подробную информацию о конкретном символе, кликните по нему.
В Application Programming Interface этот сервис не реализован.
В любом языке программирования можно легко работать с ASCII. Если у вас возникнут какие-либо вопросы, обращайтесь на форум для программистов.
Сайт построен на HTML5
Для корректной работы данного сайта требуется HTML5.
Пожалуйста, воспользуйтесь браузером, который поддерживает HTML5. Многие современные браузеры поддерживают HTML5. Например:
[8-битные кодировки: ASCII, КОИ-8R и CP1251] Первые таблицы кодировки, созданные в США, не использовали восьмой бит в байте. Текст представлялся как последовательность байт, но восьмой бит не учитывался (он применялся в служебных целях).
Общепризнанным стандартом стала таблица ASCII (American Standard Code for Information Interchange). Первые 32 символа таблицы ASCII (от 00 до 1F) использовались для непечатаемых символов. Они были предназначены для управления печатающим устройством и т.п. Остальная часть – от 20 до 7F – обычные (печатаемые) символы.
Dec
Hex
Oct
Char
Description
0
0
000
null
1
1
001
start of heading
2
2
002
start of text
3
3
003
end of text
4
4
004
end of transmission
5
5
005
enquiry
6
6
006
acknowledge
7
7
007
bell
8
8
010
backspace
9
9
011
horizontal tab
10
A
012
new line
11
B
013
vertical tab
12
C
014
new page
13
D
015
carriage return
14
E
016
shift out
15
F
017
shift in
16
10
020
data link escape
17
11
021
device control 1
18
12
022
device control 2
19
13
023
device control 3
20
14
024
device control 4
21
15
025
negative acknowledge
22
16
026
synchronous idle
23
17
027
end of trans. block
24
18
030
cancel
25
19
031
end of medium
26
1A
032
substitute
27
1B
033
escape
28
1C
034
file separator
29
1D
035
group separator
30
1E
036
record separator
31
1F
037
unit separator
32
20
040
space
33
21
041
!
34
22
042
«
35
23
043
#
36
24
044
$
37
25
045
%
38
26
046
&
39
27
047
‘
40
28
050
(
41
29
051
)
42
2A
052
*
43
2B
053
+
44
2C
054
,
45
2D
055
—
46
2E
056
.
47
2F
057
/
48
30
060
0
49
31
061
1
50
32
062
2
51
33
063
3
52
34
064
4
53
35
065
5
54
36
066
6
55
37
067
7
56
38
070
8
57
39
071
9
58
3A
072
:
59
3B
073
;
60
3C
074
63
3F
077
?
Dec
Hex
Oct
Char
64
40
100
@
65
41
101
A
66
42
102
B
67
43
103
C
68
44
104
D
69
45
105
E
70
46
106
F
71
47
107
G
72
48
110
H
73
49
111
I
74
4A
112
J
75
4B
113
K
76
4C
114
L
77
4D
115
M
78
4E
116
N
79
4F
117
O
80
50
120
P
81
51
121
Q
82
52
122
R
83
53
123
S
84
54
124
T
85
55
125
U
86
56
126
V
87
57
127
W
88
58
130
X
89
59
131
Y
90
5A
132
Z
91
5B
133
[
92
5C
134
\
93
5D
135
]
94
5E
136
^
95
5F
137
_
96
60
140
`
97
61
141
a
98
62
142
b
99
63
143
c
100
64
144
d
101
65
145
e
102
66
146
f
103
67
147
g
104
68
150
h
105
69
151
i
106
6A
152
j
107
6B
153
k
108
6C
154
l
109
6D
155
m
110
6E
156
n
111
6F
157
o
112
70
160
p
113
71
161
q
114
72
162
r
115
73
163
s
116
74
164
t
117
75
165
u
118
76
166
v
119
77
167
w
120
78
170
x
121
79
171
y
122
7A
172
z
123
7B
173
<
124
7C
174
|
125
7D
175
>
126
7E
176
Как легко заметить, в этой кодировке представлены только латинские буквы, причём те, которые используются в английском языке. Есть также арифметические и другие служебные символы. Но нет ни русских букв, ни даже специальных латинских для немецкого или французского языка. Это легко объяснить – кодировка разрабатывалась имено как американский стандарт. Когда компьютеры стали применяться во всём мире, потребовалось кодировать и другие символы.
Для этого было принято решение использовать восьмой бит в каждом байте. Тем самым оказались доступны ещё 128 значений (от 80 до FF), которые можно было использовать для кодирования символов. Первая из восьмибитных таблиц – “расширенный ASCII” (Extended ASCII) – включала в себя различные варианты латинских символов, применяемые в некоторых языках Западной Европы. Также в ней были другие дополнительные символы, включая псевдографику.
Псевдографические символы позволяют, выводя на экран только текстовые символы, обеспечивать некоторое подобие графики. При помощи псевдографики работает, например, програма для управления файлами FAR Manager.
Русских букв в таблице Extended ASCII не было. В России (ранее – СССР) и в других государствах создавались свои кодировки, позволяющие представлять в 8-битных текстовых файлах специфические “национальные” символы – латинские буквы польского и чешского языков, кириллицу (включая русские буквы) и другие алфавиты.
Во всех кодировках, получивших распространение, первые 127 символов (т.е. значения байта при восьмом бите, равном 0) совпадают с ASCII. Таким образом, файл в формате ASCII работает в любой из этих кодировок; буквы английского языка в них представлены одинаково.
Организация ISO (International Standardization Organization – Международная Организация по Стандартам) приняла группу стандартов ISO 8859. Она определяет 8-битные кодировки для разных групп языков. Так, ISO 8859-1 – это Extended ASCII, таблица для США и Западной Европы. А ISO 8859-5 – таблица для кириллицы (включая русский язык).
Однако по историческим причинам кодировка ISO 8859-5 не прижилась. Реально для русского языка применяются следующие кодировки:
– Code Page 866 (CP866), она же “DOS”, она же “альтернативная кодировка ГОСТ”. Широко применялась до середины 90-х годов; теперь используется ограниченно. Практически не применяется для распространения текстов в Интернете. – КОИ-8. Разработана в 70-80-е годы. Является общепринятым стандартом для передачи почтовых сообщений в российском Интернете. Широко применяется также в операционных системах семейства Unix, включая Linux. Вариант КОИ-8, рассчитанный на русский язык, называется КОИ-8R; существуют версии для иных кириллических языков (так, KOI8-U – вариант для украинского языка). – Code Page 1251, CP1251, Windows-1251. Разработана компанией Microsoft для поддержки русского языка в системе Windows.
Основным достоинством CP866 было сохранение символов псевдографики на тех же местах, что и в Extended ASCII; поэтому могли без изменений работать зарубежные текстовые программы, например, знаменитый Norton Commander. Ныне CP866 используется для программ под Windows, работающих в текстовых окнах или в полноэкранном текстовом режиме, включая FAR Manager.
Тексты в CP866 в последние годы встречаются довольно редко (зато она используется для кодирования русских имен файлов в Windows). Поэтому мы подробнее остановимся на двух других кодировках – КОИ-8R и CP1251.
Таблица 3. Кодировка КОИ-8R (символы с 80 по FF)
Таблица 4. Кодировка CP1251 (символы с 80 по FF)
Как можно заметить, в таблице кодировки CP1251 русские буквы расположены в алфавитном порядке (за исключением, правда, буквы Ё). Благодаря такому расположению компьютерным программам очень просто осуществлять сортировку по алфавиту.
А вот в КОИ-8R порядок русских букв кажется случайным. Но на самом деле это не так.
Во многих старых программах при обработке или передаче текста терялся 8-й бит. (Сейчас такие программы практически “вымерли”, но в конце 80-х – начале 90-х годов они были широко распространены). Чтобы получить из 8-битного значения 7-битное, достаточно отнять от старшей цифры 8; например, E1 превращается в 61.
А теперь сравните КОИ-8R с таблицей ASCII (табл.1). Вы обнаружите, что русские буквы поставлены в чёткое соответствие с латинскими. Если исчезнет восьмой бит, строчные русские буквы превращаются в заглавные латинские, а заглавные русские – в строчные латинские. Так, E1 в КОИ-8 – это русское “А”, тогда как 61 в ASCII – латинское “a”.
Итак, КОИ-8 позволяет сохранять читаемость русского текста при потере 8-го бита. “Привет всем” превращается в “pRIWET WSEM”.
В последнее время и алфавитный порядок расположения символов в таблице кодировки, и читаемость при потере 8-го бита потеряли решающее значение. Восьмой бит в современных компьютерах не теряется ни при передаче, ни при обработке. А сортировка по алфавиту производится с учётом кодировки, а не простым сравнением кодов. (Кстати, коды CP1251 расположены не полностью по алфавиту – буква Ё не находится на своём месте).
Из-за того, что распространённых кодировок оказалось две, при работе с Интернетом (почта, просмотр Web-сайтов) иногда можно вместо русского текста увидеть бессмысленный набор букв. Например, “Я СБЮФЕМХЕЛ”. Это всего лишь слова “с уважением”; но они были закодированы в кодировке CP1251, а компьютер декодировал текст по таблице КОИ-8. Если те же слова были, наоборот, закодированы в КОИ-8, а компьютер декодировал текст по таблице CP1251, результатом будет “У ХЧБЦЕОЙЕН”.
Иногда бывает, что компьютер расшифровывает русскоязычные письма и вовсе по таблице, не предназначенной для русского языка. Тогда вместо русских букв появляются бессмысленный набор символов (например, латинские буквы восточно-европейских языков); их часто называют “крокозябрами”.
В большинстве случаев современные программы справляются с определением кодировок документов Интернета (электронных писем и Web-страниц) самостоятельно. Но иногда они “дают осечку”, и тогда можно увидеть странные последовательности русских букв или же “крокозябры”. Как правило, чтобы в такой ситуации вывести на экран настоящий текст, достаточно выбрать кодировку вручную в меню программы.
ASCII (англ. American Standard Code for Information Interchange ) — американская стандартная кодировочная таблица для печатных символов и некоторых специальных кодов. В американском варианте английского языка произносится [э́ски], тогда как в Великобритании чаще произносится [а́ски]; по-русски произносится также [а́ски] или [аски́].
ASCII представляет собой кодировку для представления десятичных цифр, латинского и национального алфавитов, знаков препинания и управляющих символов. Изначально разработанная как 7-битная, с широким распространением 8-битного байта ASCII стала восприниматься как половина 8-битной. В компьютерах обычно используют расширения ASCII с задействованным 8-м битом и второй половиной кодовой таблицы (например КОИ-8 ).
Содержание
Наложение символов
Благодаря символу BS (возврат на шаг) на принтере можно печатать один символ поверх другого. В ASCII было предусмотрено добавление таким образом диакритики к буквам, например:
Примечание: в старых шрифтах апостроф ‘ рисовался с наклоном влево, а тильда
была сдвинута вверх, так что они как раз подходили на роль акута и тильды сверху.
Если на символ накладывается тот же символ, то получается эффект жирного шрифта, а если на символ накладывается подчёркивание, то получается подчёркнутый текст.
Национальные варианты ASCII
Стандарт ISO 646 (ECMA-6) предусматривает возможность размещения национальных символов на месте @ [ \ ] ^ `
. В дополнение к этому, на месте # может быть размещён £, а на месте $ — ¤. Такая система хорошо подходит для европейских языков, где нужны лишь несколько дополнительных символов. Вариант ASCII без национальных символов называется US-ASCII, или «International Reference Version».
В Юникоде первые 128 символов тоже совпадают с соответствующими символами US-ASCII.
Кодировка
.0
.1
.2
.3
.4
.5
.6
.7
.8
.9
.A
.B
.C
.D
.E
.F
0.
NUL
SOH
STX
ETX
EOT
ENQ
ACK
BEL
BS
TAB
LF
VT
FF
CR
SO
SI
1.
DLE
DC1
DC2
DC3
DC4
NAK
SYN
ETB
CAN
EM
SUB
ESC
FS
GS
RS
US
2.
!
«
#
$
%
&
‘
(
)
*
+
,
—
.
/
3.
0
1
2
3
4
5
6
7
8
9
:
;
?
4.
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
5.
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
6.
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
7.
p
q
r
s
t
u
v
w
x
y
z
<
|
>
Символ 0x5e в первой версии стандарта ASCII (1963) соответствовал стрелке вверх, а символ 0x5f — стрелке влево. Стандарт ECMA-6 (1965) заменил их на знак вставки (используемый также в роли циркумфлекса ) и нижнюю черту ( подчёркивание ) соответственно.
Управляющие символы
(После названия каждого символа указан его 16-ричный код)
Структурные свойства таблицы
Представление ASCII в ЭВМ
На подавляющем большинстве современных компьютеров минимально адресуемая единица памяти — 8-битный байт, поэтому там используются 8-битные, а не 7-битные символы. Обычно символ ASCII расширяют до 8 бит, просто добавляя один нулевой бит в качестве старшего.
.0
.1
.2
.3
.4
.5
.6
.7
.8
.9
.A
.B
.C
.D
.E
.F
0.
NUL
SOM
EOA
EOM
EQT
WRU
RU
BELL
BKSP
HT
LF
VT
FF
CR
SO
SI
1.
DC0
DC1
DC2
DC3
DC4
ERR
SYNC
LEM
S0
S1
S2
S3
S4
S5
S6
S7
2.
3.
4.
BLANK
!
«
#
$
%
&
‘
(
)
*
+
,
—
.
/
5.
0
1
2
3
4
5
6
7
8
9
:
;
?
6.
7.
8.
9.
A.
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
B.
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
↑
←
C.
D.
E.
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
F.
p
q
r
s
t
u
v
w
x
y
z
ESC
DEL
На тех компьютерах, где минимально адресуемой единицей памяти было 36-битное слово, поначалу использовали 6-битные символы (1 слово = 6 символов). После перехода на ASCII на таких компьютерах в одном слове стали размещать либо 5 семибитных символов (1 бит оставался лишним), либо 4 девятибитных символа.
ASCII-коды используются также для определения нажатой клавиши при программировании. Для стандартной QWERTY-клавиатуры таблица кодов выглядит следующим образом: