американский стандартный код для обмена информацией

ASCII таблица

американский стандартный код для обмена информацией

ASCIIA merican S tandard C ode for I nformation I nterchange.

ASCII была разработана (1963 год) для кодирования символов, коды которых помещались в 7 бит (128 символов). Со временем кодировка была расширена до 8-ми бит (256 символов), коды первых 128-и символов не изменились.

Управляющие символы ASCII (код символа 0-31)

Первые 32 символа в ASCII-таблице не имеют печатных кодов и используются для управления периферийными устройствами, телетайпами, принтерами и т.д.

DECOCTHEXBINSymbolHTML NumberHTML NameDescription
00000x0000000000NUL \0& #000;Null char
10010x0100000001SOH& #001;Start of Heading
20020x0200000010STX& #002;Start of Text
30030x0300000011ETX& #003;End of Text
40040x0400000100EOT& #004;End of Transmission
50050x0500000101ENQ& #005;Enquiry
60060x0600000110ACK& #006;Acknowledgment
70070x0700000111BEL& #007;Bell
80100x0800001000BS& #008;Back Space
90110x0900001001HT \t& #009;Tab
100120x0A00001010LF \n& #010;Новая строка
110130x0B00001011VT& #011;Vertical Tab
120140x0C00001100FF& #012;Form Feed
130150x0D00001101CR \r& #013;Возврат каретки
140160x0E00001110SO& #014;Shift Out / X-On
150170x0F00001111SI& #015;Shift In / X-Off
160200x1000010000DLE& #016;Data Line Escape
170210x1100010001DC1& #017;Device Control 1 (oft. XON)
180220x1200010010DC2& #018;Device Control 2
190230x1300010011DC3& #019;Device Control 3 (oft. XOFF)
200240x1400010100DC4& #020;Device Control 4
210250x1500010101NAK& #021;Negative Acknowledgement
220260x1600010110SYN& #022;Synchronous Idle
230270x1700010111ETB& #023;End of Transmit Block
240300x1800011000CAN& #024;Cancel
250310x1900011001EM& #025;End of Medium
260320x1A00011010SUB& #026;Substitute
270330x1B00011011ESC& #027;Escape
280340x1C00011100FS& #028;File Separator
290350x1D00011101GS& #029;Group Separator
300360x1E00011110RS& #030;Record Separator
310370x1F00011111US& #031;Unit Separator
DECOCTHEXBINSymbolHTML NumberHTML NameDescription
Печатные символы ASCII (код символа 32-127)

Буквы, цифры, знаки препинания и другие символы расположенные на клавиатуре (англ.).

Источник

Решайтесь на великие поступки — ASCII

ASCII — это самый простой из существующих коммуникационных протоколов и единственный формат данных, который может декодировать любая из существующих компьютерных систем.

Момент посадки на Марс ровера NASA Perseverance (Настойчивость) стал историческим событием. Человечество впервые увидело нечто подобное. Многие люди с замиранием сердца наблюдали за происходящим. «Настойчивость» многие годы будет служить для нас источником вдохновения.

Каждое изображение, поступающее с Марса после успешной посадки ровера, содержало в себе какой-то сюрприз. Одним из таких сюрпризов стало сообщение, зашифрованное в раскраске парашюта марсохода.

Интернет-ищейки заявили о том, что им удалось расшифровать скрытое сообщение, нанесённое на купол парашюта, который помог роверу безопасно приземлиться на поверхность Красной планеты. Как оказалось, фраза «Dare Mighty Things» («Решайтесь на великие поступки») — девиз лаборатории реактивного движения NASA (Jet Propulsion Laboratory) — была закодирована на парашюте с использованием красных и белых полос, представляющих двоичный компьютерный код. Этот код, что неудивительно, можно, используя некоторые вычисления, перевести в кодировку ASCII и, в итоге, понять то, что в нём скрыто.

американский стандартный код для обмена информацией

Ровер сделал этот снимок парашюта в процессе посадки на поверхность Марса

Пользователи Reddit и Twitter обратили внимание на то, что красно-белый узор похож на нечто, способное нести в себе какой-то смысл. Они расшифровали послание, решив, что красные фрагменты представляют единицы, а белые — нули.

Эта история разлетелась по всему миру, благодаря ей кодировка ASCII, о которой говорят не особенно часто, оказалась у всех на слуху.

В этом материале мы поговорим об ASCII, немного коснёмся истории этой кодировки, разберём пример её применения в программном коде. Прочитав эту статью, вы поймёте, что очень сложно не полюбить ASCII, кое-что о ней узнав.

Протокол ASCII

ASCII — это кодировка. Это не протокол. Протоколы могут быть построены на основе ASCII.

На самом деле, так оно и есть, но во множестве документов, которые можно встретить в интернете, ASCII называют не только «кодировкой», но и «протоколом». Поэтому я заранее хочу обратить на это ваше внимание, так как могу называть ASCII и так и так.

ASCII можно назвать самым простым коммуникационным протоколом для передачи текста. При его использовании передаются только обычные и управляющие ASCII-символы. Он предусматривает минимальный контроль ошибок или полное его отсутствие.

Может, в это сложно поверить, но ASCII — это весьма мощная технология. Это — единственный формат данных, который может декодировать любая из существующих компьютерных систем.

Немногие знают о том, что кодировка ASCII появилась в 1960-х годах, когда Лабораториям Белла (Bell Labs) понадобился стандартный способ для передачи текста. Сотрудники Bell Labs реорганизовали телеграфные коды, разобрали их и, совместно с Американской ассоциацией стандартов (American Standards Association, ASA), сформировали ASCII (American Standard Code for Information Interchange, Американский стандартный код для обмена информацией). 1960-е — это время бурного развития компьютерных технологий. Создатели вычислительных машин использовали ASCII. В результате эта кодировка и стала общепризнанным стандартом передачи информации.

Почему вокруг так много всего связано с ASCII? Дело в том, что это отражает то, как люди общаются друг с другом. Для общения мы используем буквы, цифры и специальные символы. В мире, например, очень много всего такого, что надо как-то маркировать. Речь идёт о товарных этикетках, о коробках, об автомобильных покрышках, и много о чём ещё. Компьютеры должны считывать маркировку, что они и делают, используя сканеры штрих-кодов. Потом, если речь идёт о штрих-кодах, их надо преобразовать в ASCII-символы, с которыми уже выполняются дальнейшие действия.

Типичный пример использования ASCII — это составление команд и запросов, которые можно отправлять промышленным устройствам, которые, реагируя на них, выполняют какие-то действия, или отправляют в ответ сведения о собственном состоянии.

Что такое протокол?

Представим, что вы попали на аудиенцию к королеве. При этом кто-то из дворцовых служащих сообщает вам о том, каких правил принято придерживаться во время этого мероприятия. Эти правила и называют протоколом. Понятие «протокол» часто используется в компьютерном мире. Вы вводите веб-адрес в адресную строку браузера, нажимаете Enter, это приводит к выполнению множества операций, браузер и сервер обмениваются данными, после чего запрошенная страница выводится на экране. В ходе обмена данными между сервером и браузером используется определённый набор протоколов.

Понятие «сетевой протокол» скрывает в себе множество смысловых уровней. Обычно «протокол» — это механизм, используемый для передачи пакетов с данными между компьютерами. Но тут мы не будем обращать внимание на транспортную составляющую обмена данными. Мы сосредоточимся на исследовании тех данных, которые передаются по сетям. В частности — изучим сообщения, которые программы отправляют другим программам.

Биты, байты и представление информации

Итак, мы уже немного поговорили об ASCII, а ниже я продемонстрирую примеры работы с ASCII в коде. Но прежде чем я это сделаю, предлагаю немного отклониться от нашей основной темы и поговорить о том, как в цифровом мире кодируется и хранится информация.

«Цифровое представление информации» — это когда всё что угодно представляют исключительно с помощью чисел. Обычная последовательность работы при таком подходе выглядит так:

Двоичные, восьмеричные, десятичные, шестнадцатеричные числа

Существует множество способов представления чисел. Например, возьмём двоичное число 10011111.

Оно равнозначно следующим числам:

Для того чтобы передавать данные по компьютерным сетям эти данные надо представлять в виде байтов. Байт — это группа из 8 битов. С помощью одного байта можно закодировать десятичное число в диапазоне от 0 до 255.

Эта конструкция используется для представления неких данных. Ведь, как известно, компьютер не может хранить «буквы», «цифры», «изображения» или что угодно другое. Компьютер может работать лишь с битами. А бит может пребывать лишь в одном из двух значений: «да» или «нет», «истина» или «ложь», «0» или «1». Называть их можно по-разному, но всё сводится к тому, что их всего два.

Для того чтобы использовать биты для представления чего-то, отличного от «нулей» и «единиц», нужны некие правила. Нужна возможность преобразовывать последовательности битов в нечто вроде букв, цифр, изображений. Делается это с применением некоей схемы кодирования, которую обычно называют просто «кодировкой».

Тут мы говорим о схеме кодирования ASCII. В этой кодировке определено 128 символов (для кодирования 1 символа используется 7 битов). Ниже приведён её фрагмент.

БитыСимволы
1000001A
1000010B
1000011C
1000100D
1000101E
1000110F

Фактически, при использовании ASCII работа ведётся не с «символами» или с «текстами». Всё сводится к манипулированию битами, «видимыми» через несколько слоёв абстракции.

Помимо ASCII существуют и другие способы кодирования символов, другие способы преобразования последовательностей битов в текстовые данные. Например, это набор символов Unicode. Если имеется соответствие между битами, из которых составлена строка, и кодами Unicode-символов — битовое представление строки можно преобразовать в нечто осмысленное. Если такого соответствия нет — подобное преобразование выполнить не получится.

Для преобразования двоичных данных в числа, которые соответствуют номерам из набора символов Unicode (и для преобразования кодов символов в двоичные данные), могут применяться различные кодировки. В частности, это кодировка UTF-8. Она совместима с ASCII, для представления ASCII-символов в ней применяются 1-байтные коды. Для представления символов из набора Unicode в ней может применяться до 4 байтов на 1 символ.

Если две компьютерные системы обмениваются друг с другом данными, им нужно договориться о том, какую именно кодировку они используют. Например, текстовые данные, представленные на этой странице, закодированы с использованием UTF-8, о чём сервер, передавший страницу, сообщает браузеру, который её принял и вывел на экран.

STX / ETX (протокол ASCII)

Помните вышеприведённую конструкцию? Повторим её ещё раз:

Сокращения STX и ETX обычно используются для обозначения управляющих символов ASCII. У них нет графического представления, они не могут быть выведены на экран, поэтому там, где они используются, обычно применяют их сокращённые наименования. На практике они заменяются на соответствующие ASCII-символы. А именно, STX заменяется на ASCII-символ с кодом 0x02, а ETX — на символ с кодом 0x03.

В записи кодов управляющих символов использована конструкция 0x. Она указывает на применение шестнадцатеричных кодов. Например, 0x01 — это, в десятичном представлении, 1, а в двоичном — 00000001. 0x10 — это 16 в десятичном представлении и 00010000 в двоичном.

С помощью управляющих символов STX (Start of TeXt, начало текста) и ETX (End of TeXt, конец текста) можно сформировать простой пакет, в который упаковываются пользовательские данные. В таком пакете, помимо признаков начала и конца текста, присутствует контрольная сумма (checksum), которая позволяет организовать надёжную передачу данных. Возможно, вы видели подобные конструкции в коде, предназначенном для обмена данными с некими устройствами по сети или через порт RS232.

Пример кода: отправка ASCII-команд через TCP/IP

Исходя из предположения о том, что у нас уже имеется установленное сетевое соединение, нам, для организации обмена данными между программами, нужно всего лишь отправить по этому соединению соответствующую строку. При этом, например, символ STX будет представлен в виде ‘\x02’, а передача H — в виде ‘\x02H\x04’.

ASCII-команды можно отправлять с использованием различных каналов связи. В моём примере будет использован TCP-канал. Пример написан на C# (мы рассмотрим и JavaScript-пример, рассчитанный на платформу Node.js). Этот код будет понятен и тем, кто знает Java.

▍Обзор проекта

Итак, мы будем разрабатывать простое клиент-серверное TCP-приложение.

Вот пример выходных данных, генерируемых в ходе работы нашей клиент-серверной системы.

американский стандартный код для обмена информацией

Пример работы клиент-серверной системы

▍И что всё это значит?

Если вы задались вопросом, который вынесен в заголовок этого раздела — знайте, что меня это порадовало. Сейчас я всё это объясню, прибегнув к фрагментам кода моего приложения. Его полную версию, с которой вы можете поэкспериментировать самостоятельно, можно найти в этом репозитории на GitHub.

американский стандартный код для обмена информацией

▍TCP-клиент

AsciiDemo.TestApp — это наш TCP-клиент. Вот его код (файл Program.cs ):

американский стандартный код для обмена информацией

Код класса Program

Метод Main является точкой входа в приложение.

американский стандартный код для обмена информацией

Этот код устроен очень просто, но если у вас есть по нему вопросы — можете задать их мне. Здесь мы сначала подготавливаем некоторые команды, используя кодировку ASCII, затем преобразуем их в байты и отправляем по сети TCP-серверу. Тут же мы выводим сообщения в консоль.

американский стандартный код для обмена информацией

Сеанс связи с точки зрения клиента

Обратите внимание на то, что мы получаем от сервера подтверждения (ACK/NAK) о получении данных (об этом мы поговорим ниже). В результате оказывается, что наш TCP-клиент может не только отправлять команды серверу, но и получать от сервера ответы.

В консоли можно видеть некоторые необычные символы. Это — визуальные представления управляющих символов, о которых мы говорили выше.

американский стандартный код для обмена информацией

Код метода BuildCommand

▍TCP-сервер

AsciiDemo.TCPListenerApp — это простейший TCP-сервер. Он прослушивает заданный порт, ожидая поступления команд. После получения команды он просто выводит её в консоль (если подобные команды используются для управления неким устройством — оно может, например, выключиться, или прочесть показания некоего датчика), а затем отправляет ответ. В данном случае выполняется отправка ответов ACK или NAK, имитирующих, соответственно, успешное или неудачное выполнение команды. Если нужно — можно организовать любую другую реакцию сервера на подобные команды.

Вот как выглядит то, что выводит в консоль сервер.

американский стандартный код для обмена информацией

Сеанс связи с точки зрения сервера

Как видно, каждый раз, получая команду от клиента, сервер выводит её в консоль, а после этого отправляет клиенту ACK или NAK. То, что происходит в это время на клиенте, мы уже видели.

Вот код метода Main TCP-сервера:

американский стандартный код для обмена информацией

Тут всё устроено очень просто. Сначала мы запускаем сервер на заданном IP-адресе и порте, а потом сервер, в соответствующем цикле, ждёт поступления данных. Вот код этого цикла.

американский стандартный код для обмена информацией

Цикл, используемый в работе сервера

Байты мы преобразуем в ASCII-символы, выводим их в консоль, а после этого отправляем клиенту байты, соответствующие кодам управляющих символов ACK или NAK.

американский стандартный код для обмена информацией

Получение данных от клиента и отправка ему ответа

▍Node.js-реализация клиента

Как уже было сказано, подобный функционал можно реализовать и с использованием других языков программирования. Вот, например, вариант реализации простого TCP-клиента для платформы Node.js.

американский стандартный код для обмена информацией

TCP-клиент для Node.js

Вот что выведет в консоль клиент.

американский стандартный код для обмена информацией

Сеанс связи с точки зрения Node.js-клиента

Клиент подключается к серверу, отправляет ему две команды и выводит ACK/NAK-ответы сервера.

американский стандартный код для обмена информацией

Сервер получает команды от клиента и отправляет ему ответы.

Итоги

Полагаю, что ASCII — это просто потрясающе. Это простая и мощная кодировка, на основе которой несложно создавать коммуникационные протоколы. И она будет актуальна до тех пор, пока люди общаются, используя буквы и цифры.

Использование ASCII при составлении команд и запросов восходит к временам ранних мейнфреймов IBM, при работе с которыми применялись терминалы. Оператор вводил на терминале команды и нажимал на клавишу Return для отправки их компьютеру. Все взаимодействия с этими компьютерами, так как работали с ними люди, были основаны на стандартном ASCII.

Везде, где используется некая маркировка чего-либо, применяется ASCII. Например, каждый сканер штрих-кодов, в сущности, работает с последовательностями ASCII-символов. Эти символы где-то хранятся, их нужно распечатывать, иногда их надо преобразовывать в числовые данные.

Даже сегодня, когда в нашем распоряжении имеются современные протоколы для промышленных устройств, ASCII не теряет актуальности. И так будет ещё очень и очень долго.

Приходилось ли вам создавать собственные реализации протоколов, основанных на ASCII и применяемых для обмена данными с некими устройствами?

Источник

Управление по присвоению номеров в Интернете (IANA) предпочитает имя US-ASCII для этой кодировки символов.

СОДЕРЖАНИЕ

Обзор

Использование формата ASCII для сетевого обмена было описано в 1969 году. Этот документ был официально повышен до уровня Интернет-стандарта в 2015 году.

История

американский стандартный код для обмена информацией

Комитет X3 внес другие изменения, в том числе другие новые символы ( скобки и вертикальные черты), переименовав некоторые управляющие символы (SOM стал началом заголовка (SOH)) и переместив или удалив другие (RU был удален). Впоследствии ASCII был обновлен как USAS X3.4-1967, затем USAS X3.4-1968, ANSI X3.4-1977 и, наконец, ANSI X3.4-1986.

Изменения стандарта ASCII:

Соображения по дизайну

Битовая ширина

ITA2, в свою очередь, была основана на 5-битном телеграфном коде, который Эмиль Бодо изобрел в 1870 году и запатентовал в 1874 году.

Внутренняя организация

Коды управления, которые считались важными для передачи данных, включали начало сообщения (SOM), конец адреса (EOA), конец сообщения (EOM), конец передачи (EOT), «кто вы?» (WRU), «а ты?» (RU), управление зарезервированным устройством (DC0), синхронный режим ожидания (SYNC) и подтверждение (ACK). Они были расположены так, чтобы максимизировать расстояние Хэмминга между их битовыми комбинациями.

Порядок символов

Порядок ASCII-код также называется ASCIIbetical заказ. Сопоставление данных иногда выполняется в этом порядке, а не в «стандартном» алфавитном порядке ( последовательность сопоставления ). Основные отклонения в порядке ASCII:

Промежуточный порядок преобразует прописные буквы в строчные перед сравнением значений ASCII.

Группы персонажей

Управляющие символы

ASCII резервирует первые 32 кода (десятичные числа 0–31) для управляющих символов : коды, изначально предназначенные не для представления информации для печати, а для управления устройствами (например, принтерами ), использующими ASCII, или для предоставления метаинформации о данных. потоки, например, хранящиеся на магнитной ленте.

Когда Teletype 33 ASR, оборудованный автоматическим считывателем бумажной ленты, получал Control-S (XOFF, сокращение от «передача выключена»), это приводило к остановке считывающего устройства; получение Control-Q (XON, «передача включена») заставило ленточный ридер возобновить работу. Этот метод был принят несколькими ранними компьютерными операционными системами в качестве сигнала «квитирования», предупреждающего отправителя о прекращении передачи из-за надвигающегося переполнения; он сохраняется и по сей день во многих системах как метод ручного управления выводом. В некоторых системах Control-S сохраняет свое значение, но Control-Q заменяется вторым Control-S для возобновления вывода. 33 ASR также может быть сконфигурирован для использования Control-R (DC2) и Control-T (DC4) для запуска и остановки перфорации ленты; на некоторых устройствах, оснащенных этой функцией, соответствующие буквы управления на крышке клавиатуры над буквой были TAPE и TAPE соответственно.

Удалить и Backspace

Побег

Конец линии

Компьютеры, подключенные к ARPANET, включали машины под управлением операционных систем, таких как TOPS-10 и TENEX, использующие окончания строк CR-LF, машины под управлением операционных систем, таких как Multics, использующие окончания строк LF, и машины, работающие под управлением операционных систем, таких как OS / 360, которые представляли строки как количество символов, за которым следуют символы строки, и в котором используется EBCDIC, а не ASCII. Протокол Telnet определил ASCII « сетевой виртуальный терминал » (NVT), так что соединения между хостами с различными соглашениями о завершении строк и наборами символов могли поддерживаться путем передачи стандартного текстового формата по сети. Telnet использовал ASCII вместе с окончаниями строк CR-LF, а программное обеспечение, использующее другие соглашения, переводило бы между местными соглашениями и NVT. Протокол передачи файлов принят протокол Telnet, включая использование сетевого виртуального терминала, для использования при передаче команд и передачи данных в режиме ASCII по умолчанию. Это усложняет реализацию этих протоколов, а также других сетевых протоколов, таких как используемые для электронной почты и World Wide Web, в системах, не использующих соглашение NVT о завершении строк CR-LF.

Конец файла / потока

В соглашениях библиотеки C и Unix нулевой символ используется для завершения текстовых строк ; такие строки с завершающим нулем могут называться сокращенно ASCIZ или ASCIIZ, где Z означает «ноль».

Таблица контрольных кодов

ДвоичныйОктябрьДекабрьШестигранникСокращенное названиеИмя (1967)
1963 г.1965 г.1967
000 0000000000НУЛЕВОЙNUL^ @\ 0Нулевой
000 0001001101SOMSOH^ АНачало заголовка
000 0010002202EOASTX^ BНачало текста
000 0011003303МНВETX^ CКонец текста
000 0100004404EOT^ DКонец передачи
000 0101005505WRUENQ^ EРасследование
000 0110006606RUACK^ FПодтверждение
000 0111007707КОЛОКОЛЬЧИКBEL^ G\ аКолокол
000 1000010808FE0BS^ H\ bBackspace
000 1001011909HT / SKHT^ Я\ тГоризонтальная вкладка
000 1010012100ALF^ J\ пПеревод строки
000 1011013110BVTABVT^ K\ vВертикальная табуляция
000 1100014120CFF^ L\ fПодача формы
000 1101015130DCR^ MВозврат каретки
000 1110016140EТАК^ NСдвиг
000 1111017150FSI^ OПерейти в
001 00000201610DC0DLE^ PВыход из канала передачи данных
001 00010211711DC1^ QУправление устройством 1 (часто XON )
001 00100221812DC2^ RКонтроль устройств 2
001 00110231913DC3^ SУправление устройством 3 (часто XOFF )
001 01000242014DC4^ ТКонтроль устройств 4
001 010102521 год15ERRНАК^ UОтрицательное подтверждение
001 01100262216СИНХРОНИЗАЦИЯSYN^ VСинхронный холостой ход
001 01110272317LEMETB^ WКонец блока передачи
001 10000302418S0ЖЕСТЯНАЯ БАНКА^ XОтмена
001 10010312519S1ЭМ^ YКонец среднего
001 101003226 годS2SSSUB^ ZЗаменять
001 1011033271BS3ESC^ [\ eПобег
001 110003428 годS4FS^ \Разделитель файлов
001 1101035291DS5GS^]Разделитель групп
001 1110036301ES6RS^^Разделитель записей
001 111103731 год1FS7нас^ _Разделитель единиц
111 11111771277FDEL^?Удалить

Другие изображения могут использоваться специальным оборудованием, например графика ISO 2047 или шестнадцатеричные числа.

Печатные символы

Шестнадцатеричный код 7F соответствует непечатаемому управляющему символу «удалить» (DEL) и поэтому не указан в этой таблице; это описано в диаграмме предыдущего раздела. Более ранние версии ASCII использовали стрелку вверх вместо символа каретки (5E в шестнадцатеричном формате ) и стрелку влево вместо подчеркивания (5F в шестнадцатеричном формате ).

ДвоичныйОктябрьДекабрьШестигранникГлиф
1963 г.1965 г.1967
010 00000403220Космос
010 00010413321 год!
010 00100423422»
010 001104335 год23#
010 01000443624$
010 01010453725%
010 01100463826 год&
010 01110473927
010 10000504028 год(
010 100105141 год29)
010 101005242*
010 101105343 год2B+
010 110005444 год2C,
010 1101055452D
010 1110056462E.
010 1111057472F/
011 000006048300
011 00010614931 год1
011 001006250322
011 001106351333
011 010006452344
011 01010655335 год5
011 011006654366
011 011106755377
011 100007056388
011 100107157 год399
011 101007258:
011 1011073593B;
011 1100074603C
011 1101075613Dзнак равно
011 1110076623E>
011 1111077633F?
100 00001006440@`@
100 00011016541 годА
100 00101026642B
100 00111036743 годC
100 01001046844 годD
100 01011056945E
100 01101067046F
100 01111077147грамм
100 10001107248ЧАС
100 10011117349я
100 101011274J
100 1011113754BK
100 1100114764CL
100 1101115774DM
100 1110116784EN
100 1111117794FО
101 00001208050п
101 000112181 год51Q
101 00101228252р
101 00111238353S
101 01001248454Т
101 01011258555U
101 01101268656V
101 01111278757 годW
101 10001308858Икс
101 10011318959Y
101 101013290Z
101 1011133915B[
101 1100134925C\\
101 1101135935D]
101 1110136945E^
101 1111137955F_
110 00001409660@`
110 00011419761а
110 00101429862б
110 00111439963c
110 010014410064d
110 010114510165е
110 011014610266ж
110 011114710367грамм
110 100015010468час
110 100115110569я
110 1010152106j
110 10111531076Bk
110 11001541086Cл
110 11011551096Dм
110 11101561106Eп
110 11111571116Fо
111 000016011270п
111 000116111371q
111 001016211472р
111 001116311573s
111 010016411674т
111 010116511775ты
111 011016611876v
111 011116711977ш
111 100017012078Икс
111 100117112179у
111 1010172122z
111 10111731237B <
111 11001741247CACK¬|
111 11011751257D>
111 11101761267EESC|

Набор символов

Точки, которые в предыдущих версиях (версия 1963 года или черновик 1965 года) представляли другого персонажа, показаны рамкой. Баллы, присвоенные с версии 1963 года, но в остальном не изменившиеся, показаны слегка затененными относительно цвета их легенды.

Письмо Число Пунктуация Условное обозначение Другой Неопределенный Персонаж изменен с версии 1963 года или проекта 1965 года.

Использовать

11 марта 1968 года президент США Линдон Б. Джонсон потребовал, чтобы все компьютеры, приобретенные федеральным правительством США, поддерживали кодировку ASCII, заявив:

Я также одобрил рекомендации министра торговли [ Лютера Х. Ходжеса ] относительно стандартов записи Стандартного кода для обмена информацией на магнитных лентах и ​​бумажных лентах, когда они используются в компьютерных операциях. Все компьютеры и связанное с ними оборудование, внесенные в реестр Федерального правительства 1 июля 1969 года и после этой даты, должны иметь возможность использовать Стандартный код для обмена информацией и форматы, предписанные стандартами на магнитную ленту и бумажную ленту, когда используются эти носители.

ASCII был наиболее распространенной кодировкой символов во всемирной паутине до декабря 2007 года, когда кодировка UTF-8 превзошла ее; UTF-8 обратно совместим с ASCII.

Варианты и производные

По мере распространения компьютерных технологий по всему миру различные органы стандартизации и корпорации разработали множество вариантов ASCII для облегчения выражения неанглийских языков, в которых использовались латинские алфавиты. Некоторые из этих вариантов можно было бы классифицировать как « расширения ASCII », хотя некоторые неправильно используют этот термин для представления всех вариантов, включая те, которые не сохраняют карту символов ASCII в 7-битном диапазоне. Кроме того, расширения ASCII также были ошибочно обозначены как ASCII.

7-битные коды

С самого начала своего развития ASCII задумывался как один из нескольких национальных вариантов международного стандарта символьных кодов.

Другие международные органы по стандартизации ратифицировали кодировки символов, такие как ISO 646 (1967), которые идентичны или почти идентичны ASCII, с расширениями для символов вне английского алфавита и символов, используемых за пределами Соединенных Штатов, таких как символ фунта стерлингов Соединенного Королевства. (£). Почти каждой стране нужна была адаптированная версия ASCII, поскольку ASCII удовлетворяла потребности только США и некоторых других стран. Например, в Канаде была собственная версия, поддерживающая французские символы.

Он будет разделять большинство общих символов, но назначать другие локально полезные символы нескольким кодовым точкам, зарезервированным для «национального использования». Однако четыре года, прошедшие между публикацией ASCII-1963 и первым принятием ISO международной рекомендации в 1967 году, привели к тому, что выбор ASCII для национальных символов использования стал казаться фактическими стандартами для всего мира, вызывая путаницу и несовместимость с другими странами. начали делать свои собственные присвоения этим кодовым точкам.

ISO / IEC 646, как и ASCII, представляет собой 7-битный набор символов. Он не предоставляет никаких дополнительных кодов, поэтому одни и те же кодовые точки кодируют разные символы в разных странах. Коды выхода были определены, чтобы указать, какой национальный вариант применяется к фрагменту текста, но они редко использовались, поэтому часто было невозможно узнать, с каким вариантом работать и, следовательно, какой символ представляет код, и в целом текст. В любом случае процессинговые системы могли справиться только с одним вариантом.

Поскольку скобки и фигурные скобки в ASCII были присвоены кодовым точкам «национального использования», которые использовались для букв с диакритическими знаками в других национальных вариантах ISO / IEC 646, немецкий, французский или шведский и т. Д. Программист использовал свой национальный вариант ISO. / IEC 646, а не ASCII, должен был записать и, следовательно, прочитать что-то вроде

В Японии и Корее, начиная с 2020-х годов, используется вариант ASCII, в котором обратная косая черта (5C в шестнадцатеричном формате ) отображается как ¥ ( знак йены в Японии) или ₩ ( знак вон в Корее). Это означает, что, например, путь к файлу C: \ Users \ Smith отображается как C: ¥ Users ¥ Smith (в Японии) или C: Users ₩ Smith (в Корее).

8-битные коды

Кодировки включают ISCII (Индия), VISCII (Вьетнам). Хотя эти кодировки иногда называют ASCII, истинный ASCII определяется строго только стандартом ANSI.

Большинство ранних домашних компьютерных систем разработали свои собственные 8-битные наборы символов, содержащие рисование линий и игровые глифы, и часто заполняли некоторые или все управляющие символы от 0 до 31 дополнительной графикой. В компьютерах Kaypro CP / M использовались «верхние» 128 символов греческого алфавита.

Стандарт ISO / IEC 8859 (производный от DEC-MCS), наконец, предоставил стандарт, который копирует большинство систем (по крайней мере, так же точно, как они копировали ASCII, но со многими заменами). Еще одно популярное расширение, разработанное Microsoft, Windows-1252 (часто ошибочно обозначается как ISO-8859-1 ), добавило типографские знаки препинания, необходимые для традиционной печати текста. ISO-8859-1, Windows-1252 и исходный 7-битный ASCII были наиболее распространенными кодировками символов до 2008 года, когда UTF-8 стал более распространенным.

Юникод

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *