1 added
1 removed
Original
2026-01-01
Modified
2026-02-21
1
<p><a>#статьи</a></p>
1
<p><a>#статьи</a></p>
2
<ul><li>22 авг 2025</li>
2
<ul><li>22 авг 2025</li>
3
<li>0</li>
3
<li>0</li>
4
</ul><p>Рассказываем про дедушку всех кодировок текста.</p>
4
</ul><p>Рассказываем про дедушку всех кодировок текста.</p>
5
<p>Иллюстрация: Оля Ежак для Skillbox Media</p>
5
<p>Иллюстрация: Оля Ежак для Skillbox Media</p>
6
<p>Программист, консультант, специалист по документированию. Легко и доступно рассказывает о сложных вещах в программировании и дизайне.</p>
6
<p>Программист, консультант, специалист по документированию. Легко и доступно рассказывает о сложных вещах в программировании и дизайне.</p>
7
<p>Люди привыкли общаться словами, составленными из букв, а компьютеры понимают только последовательности нулей и единиц. Но к счастью, нам не приходится вводить команды в виде бинарного кода. Это стало возможным благодаря системам кодировки, которые сопоставляют символы - буквы, цифры, знаки препинания - с двоичными комбинациями. Одной из первых таких универсальных систем стала ASCII. В статье расскажем, как она устроена и где применяется.</p>
7
<p>Люди привыкли общаться словами, составленными из букв, а компьютеры понимают только последовательности нулей и единиц. Но к счастью, нам не приходится вводить команды в виде бинарного кода. Это стало возможным благодаря системам кодировки, которые сопоставляют символы - буквы, цифры, знаки препинания - с двоичными комбинациями. Одной из первых таких универсальных систем стала ASCII. В статье расскажем, как она устроена и где применяется.</p>
8
<p><strong>Содержание</strong></p>
8
<p><strong>Содержание</strong></p>
9
<ul><li><a>Что такое таблица ASCII</a></li>
9
<ul><li><a>Что такое таблица ASCII</a></li>
10
<li><a>Как создавалась ASCII</a></li>
10
<li><a>Как создавалась ASCII</a></li>
11
<li><a>Структура и код ASCII</a></li>
11
<li><a>Структура и код ASCII</a></li>
12
<li><a>Что такое расширенная таблица ASCII</a></li>
12
<li><a>Что такое расширенная таблица ASCII</a></li>
13
<li><a>Что такое Unicode и UTF-8</a></li>
13
<li><a>Что такое Unicode и UTF-8</a></li>
14
<li><a>Как узнать код символа или получить символ по коду</a></li>
14
<li><a>Как узнать код символа или получить символ по коду</a></li>
15
<li><a>Как набрать символ по его ASCII-коду</a></li>
15
<li><a>Как набрать символ по его ASCII-коду</a></li>
16
<li><a>Как использовать ASCII в программировании</a></li>
16
<li><a>Как использовать ASCII в программировании</a></li>
17
</ul><p><strong>ASCII</strong>(от англ. American Standard Code for Information Interchange) - стандарт представления текстовых символов в цифровом виде. Он появился в США в 1960-х, когда инженерам нужно было научиться передавать текст между устройствами, которые понимали только нули и единицы.</p>
17
</ul><p><strong>ASCII</strong>(от англ. American Standard Code for Information Interchange) - стандарт представления текстовых символов в цифровом виде. Он появился в США в 1960-х, когда инженерам нужно было научиться передавать текст между устройствами, которые понимали только нули и единицы.</p>
18
<p>Идея была простой: каждому символу - своё число. Буквы латинского алфавита, цифры, знаки препинания и даже управляющие символы вроде перевода строки (\n) или табуляции (\t) получили уникальные числовые коды от 0 до 127.</p>
18
<p>Идея была простой: каждому символу - своё число. Буквы латинского алфавита, цифры, знаки препинания и даже управляющие символы вроде перевода строки (\n) или табуляции (\t) получили уникальные числовые коды от 0 до 127.</p>
19
<p>Так выглядит классическая таблица ASCII:</p>
19
<p>Так выглядит классическая таблица ASCII:</p>
20
Таблица символов ASCII<em>Изображение:<a>wukong</a> / Wikimedia Commons</em><p>ASCII стала универсальным "переводчиком" между человеком и машиной. Одни и те же байты означали одни и те же символы на любой платформе, что позволяло компьютерам считывать и выводить текст без системных ошибок. Со временем стандарт закрепился в протоколах и форматах, а в современной кодировке UTF-8 первые 128 символов полностью совпадают с ASCII.</p>
20
Таблица символов ASCII<em>Изображение:<a>wukong</a> / Wikimedia Commons</em><p>ASCII стала универсальным "переводчиком" между человеком и машиной. Одни и те же байты означали одни и те же символы на любой платформе, что позволяло компьютерам считывать и выводить текст без системных ошибок. Со временем стандарт закрепился в протоколах и форматах, а в современной кодировке UTF-8 первые 128 символов полностью совпадают с ASCII.</p>
21
<p>В начале 1960-х каждая компания, выпускавшая телетайпы, компьютеры или коммуникационное оборудование, использовала собственные таблицы кодов. Один и тот же символ мог обозначаться по-разному: например, буква A на одной машине имела код 41, а на другой - 91. Из-за этого при обмене данными устройства буквально "разговаривали" на разных языках.</p>
21
<p>В начале 1960-х каждая компания, выпускавшая телетайпы, компьютеры или коммуникационное оборудование, использовала собственные таблицы кодов. Один и тот же символ мог обозначаться по-разному: например, буква A на одной машине имела код 41, а на другой - 91. Из-за этого при обмене данными устройства буквально "разговаривали" на разных языках.</p>
22
<p>Чтобы устранить хаос, Американский национальный институт стандартов (ANSI) создал рабочую группу во главе с инженером Бобом Бемером. Задачей команды было разработать единый набор символов, который понимали бы все устройства.</p>
22
<p>Чтобы устранить хаос, Американский национальный институт стандартов (ANSI) создал рабочую группу во главе с инженером Бобом Бемером. Задачей команды было разработать единый набор символов, который понимали бы все устройства.</p>
23
<p>Новый стандарт должен был отвечать трём условиям:</p>
23
<p>Новый стандарт должен был отвечать трём условиям:</p>
24
<ul><li>быть компактным, чтобы данные легко передавались по каналам связи;</li>
24
<ul><li>быть компактным, чтобы данные легко передавались по каналам связи;</li>
25
<li>включать буквы, цифры, знаки препинания и управляющие коды;</li>
25
<li>включать буквы, цифры, знаки препинания и управляющие коды;</li>
26
<li>оставаться совместимым с телетайпами и терминалами.</li>
26
<li>оставаться совместимым с телетайпами и терминалами.</li>
27
</ul><p>Рабочая группа собирала предложения от производителей телетайпов и компьютеров, телекоммуникационных компаний и даже правительственных структур. В итоге инженеры остановились на 7-битной кодировке, которая позволяла закодировать 128 символов.</p>
27
</ul><p>Рабочая группа собирала предложения от производителей телетайпов и компьютеров, телекоммуникационных компаний и даже правительственных структур. В итоге инженеры остановились на 7-битной кодировке, которая позволяла закодировать 128 символов.</p>
28
<p>В других вопросах инженеры не сразу сошлись во мнениях. Одни предлагали расположить строчные и заглавные буквы рядом, другие настаивали, что первые коды должны быть зарезервированы за управляющими символами. Обсуждали даже порядок алфавита и необходимость включения некоторых "редких" знаков.</p>
28
<p>В других вопросах инженеры не сразу сошлись во мнениях. Одни предлагали расположить строчные и заглавные буквы рядом, другие настаивали, что первые коды должны быть зарезервированы за управляющими символами. Обсуждали даже порядок алфавита и необходимость включения некоторых "редких" знаков.</p>
29
<p>Особо примечательным оказалось предложение Бобa Бемера добавить escape-символ (ESC). Изначально его сочли странным, но со временем ESC стал одним из ключевых элементов: он позволял терминалам отличать текст от команд, очищать экран, перемещать курсор и менять формат вывода.</p>
29
<p>Особо примечательным оказалось предложение Бобa Бемера добавить escape-символ (ESC). Изначально его сочли странным, но со временем ESC стал одним из ключевых элементов: он позволял терминалам отличать текст от команд, очищать экран, перемещать курсор и менять формат вывода.</p>
30
<p>Первая версия таблицы вышла в 1963 году под названием ANSI X3.4. В 1967-1968 годах её доработали, уточнив порядок символов и поведение некоторых кодов. После этого ASCII быстро вышел за пределы США и превратился в мировой стандарт. Его стали использовать в протоколах связи, операционных системах, компиляторах и языках программирования.</p>
30
<p>Первая версия таблицы вышла в 1963 году под названием ANSI X3.4. В 1967-1968 годах её доработали, уточнив порядок символов и поведение некоторых кодов. После этого ASCII быстро вышел за пределы США и превратился в мировой стандарт. Его стали использовать в протоколах связи, операционных системах, компиляторах и языках программирования.</p>
31
<p>Таблица ASCII выглядит очень просто. В ней всего 128 символов, каждому из которых соответствует уникальное число от 0 до 127. Но за этой простотой стоит продуманная инженерная логика.</p>
31
<p>Таблица ASCII выглядит очень просто. В ней всего 128 символов, каждому из которых соответствует уникальное число от 0 до 127. Но за этой простотой стоит продуманная инженерная логика.</p>
32
<p>Каждому символу в таблице отводится ровно 7 бит. Это не случайное число, а строго рассчитанное: именно столько комбинаций (от 0000000 до 1111111) нужно, чтобы закодировать 128 значений.</p>
32
<p>Каждому символу в таблице отводится ровно 7 бит. Это не случайное число, а строго рассчитанное: именно столько комбинаций (от 0000000 до 1111111) нужно, чтобы закодировать 128 значений.</p>
33
<p>В 1960-е годы инженеры старались экономить каждый бит. Уже появлялись 8-битные системы, но разработчики ASCII сознательно оставили один бит "свободным". В то время его часто использовали для проверки чётности или других служебных функций.</p>
33
<p>В 1960-е годы инженеры старались экономить каждый бит. Уже появлялись 8-битные системы, но разработчики ASCII сознательно оставили один бит "свободным". В то время его часто использовали для проверки чётности или других служебных функций.</p>
34
<p>Давай те детально рассмотрим, какие символы есть в ASCII-таблице и в каком порядке они идут.</p>
34
<p>Давай те детально рассмотрим, какие символы есть в ASCII-таблице и в каком порядке они идут.</p>
35
<p>Коды от 0 до 31 и 127 зарезервированы под непечатные символы. Их нельзя увидеть на экране, но они выполняют команды для устройств ввода-вывода или форматирования текста. Большинство таких кодов пришло из эпохи телетайпов - например, "возврат каретки" действительно возвращал печатающую головку в начало строки.</p>
35
<p>Коды от 0 до 31 и 127 зарезервированы под непечатные символы. Их нельзя увидеть на экране, но они выполняют команды для устройств ввода-вывода или форматирования текста. Большинство таких кодов пришло из эпохи телетайпов - например, "возврат каретки" действительно возвращал печатающую головку в начало строки.</p>
36
<p>Примеры управляющих символов:</p>
36
<p>Примеры управляющих символов:</p>
37
<ul><li>0 - NUL, "пустой символ", чаще всего обозначает конец строки.</li>
37
<ul><li>0 - NUL, "пустой символ", чаще всего обозначает конец строки.</li>
38
<li>10 - LF, перевод строки.</li>
38
<li>10 - LF, перевод строки.</li>
39
<li>13 - CR, возврат каретки.</li>
39
<li>13 - CR, возврат каретки.</li>
40
<li>27 - ESC, escape-символ, применяется для управляющих последовательностей в терминалах.</li>
40
<li>27 - ESC, escape-символ, применяется для управляющих последовательностей в терминалах.</li>
41
<li>127 - DEL, символ удаления.</li>
41
<li>127 - DEL, символ удаления.</li>
42
</ul><p>Сегодня они редко используются напрямую, но всё ещё встречаются в протоколах, терминальных интерфейсах и форматах передачи данных.</p>
42
</ul><p>Сегодня они редко используются напрямую, но всё ещё встречаются в протоколах, терминальных интерфейсах и форматах передачи данных.</p>
43
<p>Начиная с кода 32, в таблице идут печатаемые символы - те, что можно увидеть в тексте. Они расположены логично и группами:</p>
43
<p>Начиная с кода 32, в таблице идут печатаемые символы - те, что можно увидеть в тексте. Они расположены логично и группами:</p>
44
<strong>Диапазон</strong><strong>Символы</strong>32Пробел (space)33-47Знаки препинания и спецсимволы: ! " # $ % & ’ ( ) * + , - . /48-57Цифры: 0-958-64Спецсимволы: : ; < = > ? @65-90Заглавные латинские буквы: A-Z91-96Скобки и акценты: ` [ \ ] ^ _ ``97-122Строчные латинские буквы: a-z123-126Дополнительные символы: { | } ~<p>Благодаря последовательному расположению букв алфавита их удобно обрабатывать в коде. Например, вывести английский алфавит в Python можно всего одним циклом for:</p>
44
<strong>Диапазон</strong><strong>Символы</strong>32Пробел (space)33-47Знаки препинания и спецсимволы: ! " # $ % & ’ ( ) * + , - . /48-57Цифры: 0-958-64Спецсимволы: : ; < = > ? @65-90Заглавные латинские буквы: A-Z91-96Скобки и акценты: ` [ \ ] ^ _ ``97-122Строчные латинские буквы: a-z123-126Дополнительные символы: { | } ~<p>Благодаря последовательному расположению букв алфавита их удобно обрабатывать в коде. Например, вывести английский алфавит в Python можно всего одним циклом for:</p>
45
for code in range(65, 91): # A-Z print(chr(code), end=' ') # → A B C ... Z<p>Разница между заглавной и строчной буквой - ровно 32. Так, код заглавной буквы A равен 65, а чтобы узнать номер строчной, надо к 65 прибавить 32: 65 + 32 = 97. Это свойство можно использовать в коде для быстрой смены регистра символов.</p>
45
for code in range(65, 91): # A-Z print(chr(code), end=' ') # → A B C ... Z<p>Разница между заглавной и строчной буквой - ровно 32. Так, код заглавной буквы A равен 65, а чтобы узнать номер строчной, надо к 65 прибавить 32: 65 + 32 = 97. Это свойство можно использовать в коде для быстрой смены регистра символов.</p>
46
<p>Базовый ASCII включает лишь 128 символов: латинский алфавит, арабские цифры, знаки препинания и управляющие коды. Для английского этого хватало, но для большинства европейских и тем более нелатинских языков - уже нет.</p>
46
<p>Базовый ASCII включает лишь 128 символов: латинский алфавит, арабские цифры, знаки препинания и управляющие коды. Для английского этого хватало, но для большинства европейских и тем более нелатинских языков - уже нет.</p>
47
<p>Чтобы восполнить пробелы, разработчики начали использовать восьмой бит, который изначально не задействовали. Так появились расширенные таблицы: диапазон 0-127 повторял классический ASCII, а коды 128-255 отводились под новые символы.</p>
47
<p>Чтобы восполнить пробелы, разработчики начали использовать восьмой бит, который изначально не задействовали. Так появились расширенные таблицы: диапазон 0-127 повторял классический ASCII, а коды 128-255 отводились под новые символы.</p>
48
<p>Ниже список популярных расширений ASCII:</p>
48
<p>Ниже список популярных расширений ASCII:</p>
49
<ul><li><strong>Windows-1251</strong> - набор кириллических символов в Windows. Его использовали до появления UTF-8.</li>
49
<ul><li><strong>Windows-1251</strong> - набор кириллических символов в Windows. Его использовали до появления UTF-8.</li>
50
<li><strong>ISO 8859-1 (Latin-1)</strong> - расширение для французского, польского, немецкого, испанского и других языков, использующих латиницу.</li>
50
<li><strong>ISO 8859-1 (Latin-1)</strong> - расширение для французского, польского, немецкого, испанского и других языков, использующих латиницу.</li>
51
<li><strong>ISO 8859-2 (Latin-2)</strong> - набор для польского, чешского, хорватского и других центральноевропейских языков.</li>
51
<li><strong>ISO 8859-2 (Latin-2)</strong> - набор для польского, чешского, хорватского и других центральноевропейских языков.</li>
52
<li><strong>Windows-1252</strong>(или ANSI Latin 1) - расширение, построенное на базе ISO 8859-1, но с добавлением специальных символов € , ”. Его использовали в англоязычной версии Windows.</li>
52
<li><strong>Windows-1252</strong>(или ANSI Latin 1) - расширение, построенное на базе ISO 8859-1, но с добавлением специальных символов € , ”. Его использовали в англоязычной версии Windows.</li>
53
<li><strong>CP437</strong> - кодировка MS-DOS, которая содержит английские символы и псевдографику: рамки, уголки, блоки, стрелки. Раньше этот стандарт использовали для создания интерфейсов в DOS-программах.</li>
53
<li><strong>CP437</strong> - кодировка MS-DOS, которая содержит английские символы и псевдографику: рамки, уголки, блоки, стрелки. Раньше этот стандарт использовали для создания интерфейсов в DOS-программах.</li>
54
<li><strong>CP866</strong> - кириллическая версия CP437.</li>
54
<li><strong>CP866</strong> - кириллическая версия CP437.</li>
55
</ul><p>Расширенные таблицы решили вопрос нехватки символов, но породили новую проблему - несовместимость кодировок.</p>
55
</ul><p>Расширенные таблицы решили вопрос нехватки символов, но породили новую проблему - несовместимость кодировок.</p>
56
<p>Если вы пользовались компьютером лет 10-15 назад, то наверняка сталкивались с "кракозябрами" вместо текста. Это происходило, когда файл создавался в одной кодировке, а открывался в другой: нумерация символов в таблицах не совпадала.</p>
56
<p>Если вы пользовались компьютером лет 10-15 назад, то наверняка сталкивались с "кракозябрами" вместо текста. Это происходило, когда файл создавался в одной кодировке, а открывался в другой: нумерация символов в таблицах не совпадала.</p>
57
<p>Именно эту проблему окончательно решил стандарт Unicode, который стал универсальной кодировкой для всех языков и символов.</p>
57
<p>Именно эту проблему окончательно решил стандарт Unicode, который стал универсальной кодировкой для всех языков и символов.</p>
58
<p>В 1990-х, чтобы решить проблему множества несовместимых кодировок, инженеры придумали стандарт Unicode. Он присваивает каждому символу уникальный номер независимо от языка и платформы.</p>
58
<p>В 1990-х, чтобы решить проблему множества несовместимых кодировок, инженеры придумали стандарт Unicode. Он присваивает каждому символу уникальный номер независимо от языка и платформы.</p>
59
<p>Сегодня в Unicode более 150 тысяч символов: буквы всех языков мира, эмодзи, символы валют, математические знаки и даже символы древних письменностей. Номер каждого символа состоит из префикса U+ и числа в шестнадцатеричном формате:</p>
59
<p>Сегодня в Unicode более 150 тысяч символов: буквы всех языков мира, эмодзи, символы валют, математические знаки и даже символы древних письменностей. Номер каждого символа состоит из префикса U+ и числа в шестнадцатеричном формате:</p>
60
<ul><li>A → U+0041;</li>
60
<ul><li>A → U+0041;</li>
61
<li>а → U+0430;</li>
61
<li>а → U+0430;</li>
62
<li>€ → U+20AC;</li>
62
<li>€ → U+20AC;</li>
63
<li> → U+1F604.</li>
63
<li> → U+1F604.</li>
64
</ul><p>Однако Unicode лишь описывает символы и их номера, но не определяет способ хранения в памяти. Для этого существуют форматы кодирования: UTF-8, UTF-16 и UTF-32. Сегодня почти все сайты и приложения используют UTF-8.</p>
64
</ul><p>Однако Unicode лишь описывает символы и их номера, но не определяет способ хранения в памяти. Для этого существуют форматы кодирования: UTF-8, UTF-16 и UTF-32. Сегодня почти все сайты и приложения используют UTF-8.</p>
65
<p>Сам формат в 1992 году предложили разработчики Кен Томпсон и Роб Пайк. Для каждого Unicode-символа в UTF-8 выделяется от 1 до 4 байтов. Например, для латиницы и цифр достаточно одного байта, так как номера этих символов совпадают с ASCII, а для современных эмодзи требуется уже 4 байта:</p>
65
<p>Сам формат в 1992 году предложили разработчики Кен Томпсон и Роб Пайк. Для каждого Unicode-символа в UTF-8 выделяется от 1 до 4 байтов. Например, для латиницы и цифр достаточно одного байта, так как номера этих символов совпадают с ASCII, а для современных эмодзи требуется уже 4 байта:</p>
66
<ul><li>A → 01000001 (1 байт)</li>
66
<ul><li>A → 01000001 (1 байт)</li>
67
<li>€ → 11100010 10000010 10101100 (3 байта)</li>
67
<li>€ → 11100010 10000010 10101100 (3 байта)</li>
68
<li>→ 11110000 10011111 10011000 10000000 (4 байта)</li>
68
<li>→ 11110000 10011111 10011000 10000000 (4 байта)</li>
69
</ul><p>Благодаря UTF-8 компьютеры смогли корректно отображать все символы мира - от латиницы до современных эмодзи.</p>
69
</ul><p>Благодаря UTF-8 компьютеры смогли корректно отображать все символы мира - от латиницы до современных эмодзи.</p>
70
<p>Иногда при отладке полезно заглянуть "под капот" текста и узнать, какой код у символа, во что он превращается в байтах и как из числа снова получить букву. Для этого есть несколько приёмов.</p>
70
<p>Иногда при отладке полезно заглянуть "под капот" текста и узнать, какой код у символа, во что он превращается в байтах и как из числа снова получить букву. Для этого есть несколько приёмов.</p>
71
<p>Если нужный символ находится в диапазоне от 0 до 127, то можно просто заглянуть в ASCII-таблицу. Базовая таблица есть даже в этой статье, а расширенную можно найти на портале<a>ASCII Code</a>.</p>
71
<p>Если нужный символ находится в диапазоне от 0 до 127, то можно просто заглянуть в ASCII-таблицу. Базовая таблица есть даже в этой статье, а расширенную можно найти на портале<a>ASCII Code</a>.</p>
72
<p>В Windows есть платформа PowerShell, которая умеет напрямую конвертировать символы и коды:</p>
72
<p>В Windows есть платформа PowerShell, которая умеет напрямую конвертировать символы и коды:</p>
73
# Узнать код символа (Unicode code point) [int][char]'A' # 65 [int][char]'€' # 8364 # Узнать символ по коду (code point) [char]65 # 'A' [char]0x20AC # '€'<p>В Unix-подобных системах, таких как Linux и macOS, тоже есть стандартные утилиты для работы с кодировками:</p>
73
# Узнать код символа (Unicode code point) [int][char]'A' # 65 [int][char]'€' # 8364 # Узнать символ по коду (code point) [char]65 # 'A' [char]0x20AC # '€'<p>В Unix-подобных системах, таких как Linux и macOS, тоже есть стандартные утилиты для работы с кодировками:</p>
74
<ul><li>Узнать байты символа можно с помощью echo. В ответ система выведет шестнадцатеричный ASCII-код:</li>
74
<ul><li>Узнать байты символа можно с помощью echo. В ответ система выведет шестнадцатеричный ASCII-код:</li>
75
</ul>echo -n "A" | xxd -p # 41 echo -n "€" | xxd -p # e282ac<ul><li>Символ по коду можно вывести в терминал с помощью printf:</li>
75
</ul>echo -n "A" | xxd -p # 41 echo -n "€" | xxd -p # e282ac<ul><li>Символ по коду можно вывести в терминал с помощью printf:</li>
76
</ul>printf '\x41\n' # A printf '\xE2\x82\xAC\n' # €<ul><li>Десятичный код символа также можно узнать с помощью printf:</li>
76
</ul>printf '\x41\n' # A printf '\xE2\x82\xAC\n' # €<ul><li>Десятичный код символа также можно узнать с помощью printf:</li>
77
</ul>printf '%d\n' "'A" # 65<p>Иногда нужно ввести символ, которого нет на клавиатуре: знак копирайта, греческую букву, валюту или спецсимвол. В Windows для этого есть система<strong>Alt-кодов</strong> - способ ввода символов по их числовому коду.</p>
77
</ul>printf '%d\n' "'A" # 65<p>Иногда нужно ввести символ, которого нет на клавиатуре: знак копирайта, греческую букву, валюту или спецсимвол. В Windows для этого есть система<strong>Alt-кодов</strong> - способ ввода символов по их числовому коду.</p>
78
<p>Как использовать Alt-код:</p>
78
<p>Как использовать Alt-код:</p>
79
<ul><li>Убедитесь, что включена функция<strong>Num Lock</strong>. Если включена, то на клавиатуре должен гореть светодиод<strong>Num</strong>.</li>
79
<ul><li>Убедитесь, что включена функция<strong>Num Lock</strong>. Если включена, то на клавиатуре должен гореть светодиод<strong>Num</strong>.</li>
80
<li>Зажмите клавишу<strong>Alt</strong>.</li>
80
<li>Зажмите клавишу<strong>Alt</strong>.</li>
81
<li>На цифровой клавиатуре (справа) введите код символа.</li>
81
<li>На цифровой клавиатуре (справа) введите код символа.</li>
82
<li>Отпустите<strong>Alt </strong>- символ появится.</li>
82
<li>Отпустите<strong>Alt </strong>- символ появится.</li>
83
</ul><p>Alt-коды от 0 до 127 - это классический набор ASCII, коды от 128 до 255 - расширенная таблица, включающая символы с диакритиками, графику, валюты:</p>
83
</ul><p>Alt-коды от 0 до 127 - это классический набор ASCII, коды от 128 до 255 - расширенная таблица, включающая символы с диакритиками, графику, валюты:</p>
84
<ul><li>A -<strong>Alt + 65</strong>;</li>
84
<ul><li>A -<strong>Alt + 65</strong>;</li>
85
<li>© -<strong>Alt + 0169</strong>;</li>
85
<li>© -<strong>Alt + 0169</strong>;</li>
86
<li>± -<strong>Alt + 0177</strong>;</li>
86
<li>± -<strong>Alt + 0177</strong>;</li>
87
<li>™ -<strong>Alt + 0153</strong>;</li>
87
<li>™ -<strong>Alt + 0153</strong>;</li>
88
<li>ø -<strong>Alt + 0248</strong>.</li>
88
<li>ø -<strong>Alt + 0248</strong>.</li>
89
</ul><p>В Windows есть и другие способы ввода нестандартных символов:</p>
89
</ul><p>В Windows есть и другие способы ввода нестандартных символов:</p>
90
<ul><li><strong>Таблица символов.</strong>Нажмите<strong>Win + R</strong>, введите charmap →<strong>Enter</strong>. Откроется таблица символов: можно выбрать нужный, скопировать и вставить его в текст.</li>
90
<ul><li><strong>Таблица символов.</strong>Нажмите<strong>Win + R</strong>, введите charmap →<strong>Enter</strong>. Откроется таблица символов: можно выбрать нужный, скопировать и вставить его в текст.</li>
91
<li><strong>Меню эмодзи и спецсимволов.</strong>нажмите<strong>Win + .</strong>(точка). Появится встроенное меню с эмодзи, символами валют и математическими знаками.</li>
91
<li><strong>Меню эмодзи и спецсимволов.</strong>нажмите<strong>Win + .</strong>(точка). Появится встроенное меню с эмодзи, символами валют и математическими знаками.</li>
92
</ul><p>Даже после появления Unicode таблица ASCII остаётся важным инструментом для обработки текста с помощью кода. С её помощью можно:</p>
92
</ul><p>Даже после появления Unicode таблица ASCII остаётся важным инструментом для обработки текста с помощью кода. С её помощью можно:</p>
93
<ul><li>искать фрагменты текста, сортировать и фильтровать символы;</li>
93
<ul><li>искать фрагменты текста, сортировать и фильтровать символы;</li>
94
<li>парсить данные, форматировать данные и разбирать протоколы;</li>
94
<li>парсить данные, форматировать данные и разбирать протоколы;</li>
95
<li>шифровать информацию и работать с ней на бинарном уровне;</li>
95
<li>шифровать информацию и работать с ней на бинарном уровне;</li>
96
-
<li>реализовывать символьные операции - например, преобразовывать строки и менять регистр.</li>
96
+
<li>реализовыва��ь символьные операции - например, преобразовывать строки и менять регистр.</li>
97
</ul><p>Почти во всех языках программирования есть встроенные функции для получения ASCII-кода символа и обратного преобразования. Рассмотрим на примере Python:</p>
97
</ul><p>Почти во всех языках программирования есть встроенные функции для получения ASCII-кода символа и обратного преобразования. Рассмотрим на примере Python:</p>
98
<ul><li>Базовые операции для получения кода символа и символа по коду:</li>
98
<ul><li>Базовые операции для получения кода символа и символа по коду:</li>
99
</ul>printf '%d\n' "'A" # 65<ul><li>Преобразование строки в список кодов и обратно:</li>
99
</ul>printf '%d\n' "'A" # 65<ul><li>Преобразование строки в список кодов и обратно:</li>
100
</ul>text = "I like ASCII" # Строка -> список ASCII-кодов codes = [ord(c) for c in text] print(codes) # [73, 32, 108, 105, 107, 101, 32, 65, 83, 67, 73, 73] # Список кодов -> строка restored = ''.join(chr(c) for c in codes) print(restored) # "I like ASCII"<ul><li>Сортировка строк по ASCII-кодам:</li>
100
</ul>text = "I like ASCII" # Строка -> список ASCII-кодов codes = [ord(c) for c in text] print(codes) # [73, 32, 108, 105, 107, 101, 32, 65, 83, 67, 73, 73] # Список кодов -> строка restored = ''.join(chr(c) for c in codes) print(restored) # "I like ASCII"<ul><li>Сортировка строк по ASCII-кодам:</li>
101
</ul>s = "I like ASCII" sorted_s = ''.join(sorted(s)) print(sorted_s) # " ACIIISeikl"<ul><li><strong>ASCII </strong>- это стандарт для цифрового представления текстовых символов. С его помощью компьютеры кодируют буквы, цифры, знаки препинания и управляющие символы.</li>
101
</ul>s = "I like ASCII" sorted_s = ''.join(sorted(s)) print(sorted_s) # " ACIIISeikl"<ul><li><strong>ASCII </strong>- это стандарт для цифрового представления текстовых символов. С его помощью компьютеры кодируют буквы, цифры, знаки препинания и управляющие символы.</li>
102
<li>Первая версия ASCII появилась в 1963 году и включала всего 128 символов. Она стала универсальным "языком" для обмена текстом между устройствами.</li>
102
<li>Первая версия ASCII появилась в 1963 году и включала всего 128 символов. Она стала универсальным "языком" для обмена текстом между устройствами.</li>
103
<li>Со временем стандарт вырос в Unicode, который охватывает более 150 тысяч символов: буквы всех языков мира, эмодзи, символы валют, математические и древние знаки.</li>
103
<li>Со временем стандарт вырос в Unicode, который охватывает более 150 тысяч символов: буквы всех языков мира, эмодзи, символы валют, математические и древние знаки.</li>
104
<li>ASCII и Unicode используются для обработки текста, передачи данных и шифрования. Например, на основе таблицы ASCII легко написать алгоритм для перевода строчных букв в прописные и обратно или реализовать другие операции с символами.</li>
104
<li>ASCII и Unicode используются для обработки текста, передачи данных и шифрования. Например, на основе таблицы ASCII легко написать алгоритм для перевода строчных букв в прописные и обратно или реализовать другие операции с символами.</li>
105
<li>Стандарты кодирования, такие как UTF-8, позволяют корректно хранить и передавать все символы Unicode в памяти компьютера и по сети.</li>
105
<li>Стандарты кодирования, такие как UTF-8, позволяют корректно хранить и передавать все символы Unicode в памяти компьютера и по сети.</li>
106
</ul><a>Курс с трудоустройством: "Профессия Разработчик + ИИ" Узнать о курсе</a>
106
</ul><a>Курс с трудоустройством: "Профессия Разработчик + ИИ" Узнать о курсе</a>