Таблица ASCII из руководства к принтеру до 1972 года | |
MIME / IANA | us-ascii |
---|---|
Псевдоним (а) | ISO-IR-006, ANSI_X3.4-1968, ANSI_X3.4-1986, ISO_646.irv: 1991, ISO646-US, us, IBM367, cp367 |
Язык (и) | Английский |
Классификация | Серия ISO 646 |
Расширения |
|
Предыдущий | ITA 2, FIELDATA |
Преемник | ISO 8859, Unicode |
|
ASCII(/ ˈæskiː / ( ) ASS-kee ), сокращенно от American Standard Код для обмена информацией- это стандарт кодировки символов для электронной связи. Коды ASCII представляют текст в компьютерах, телекоммуникационном оборудовании и других устройствах. Большинство современных схем кодирования символов основаны на ASCII, хотя они поддерживают множество дополнительных символов.
Служба присвоения номеров Интернета (IANA) предпочитает имя US-ASCIIдля этой кодировки символов.
ASCII является одним из Основные этапы IEEE.
ASCII был разработан на основе телеграфного кода. Его первое коммерческое использование было как семи- бит телетайп кода, продвигаемого Bell Data Services. Работа над стандартом ASCII началась 6 октября 1960 года с первого собрания Американской ассоциации стандартов (ASA) (ныне Американский национальный институт стандартов или ANSI) X3. 2 подкомитета. Первое издание стандарта было опубликовано в 1963 году, претерпело серьезные изменения в 1967 году и последнее обновление в 1986 году. По сравнению с более ранними телеграфными кодами, предлагаемый код Белла и ASCII были упорядочены для более удобной сортировки (т. Е. ) списков и дополнительные функции для устройств, отличных от телетайпов.
Использование формата ASCII для сетевого обмена было описано в 1969 году. Этот документ был официально повышен до уровня Интернет-стандарта в 2015 году.
Первоначально основанный на английском алфавите, ASCII кодирует 128 указанных символов в семибитные целые числа, как показано на диаграмме ASCII выше. Можно напечатать девяносто пять закодированных символов: к ним относятся цифры от 0 до 9, строчные буквы от a до z, прописные буквы от A до Z и символы пунктуации. Кроме того, исходная спецификация ASCII включала 33 непечатаемых кода управления , которые исходили от телетайпов ; большинство из них уже устарело, хотя некоторые из них все еще широко используются, например, коды возврата каретки, перевода строки и табуляции.
Например, строчная i будет представлена в кодировке ASCII как двоичный 1101001 = шестнадцатеричный 69 (i - девятая буква) = десятичный 105.
Американский стандартный код для обмена информацией (ASCII) был разработан под эгидой комитета Американской Ассоциация стандартов (ASA), называемая комитетом X3, ее подкомитетом X3.2 (позже X3L2), а позже - рабочей группой этого подкомитета X3.2.4 (теперь INCITS ). ASA стал Институтом стандартов Соединенных Штатов Америки (USASI) и, в конечном итоге, Американским национальным институтом стандартов (ANSI).
С заполненными другими специальными символами и управляющими кодами ASCII был опубликован как ASA X3.4-1963, оставив 28 кодовых позиций без какого-либо назначенного значения, зарезервированного для будущей стандартизации, и один неназначенный управляющий код. В то время велись споры о том, должно ли быть больше управляющих символов, а не строчных букв. Нерешительность длилась недолго: в мае 1963 года рабочая группа CCITT по новому телеграфному алфавиту предложила назначить строчные буквы на палочки 6 и 7, а Международная организация по стандартизации TC 97 SC 2 проголосовала в октябре за включение изменение в проекте стандарта. Целевая группа X3.2.4 проголосовала за изменение ASCII на своем собрании в мае 1963 года. Размещение строчных букв на палочках 6 и 7 привело к тому, что символы в битовом шаблоне отличались от верхнего регистра на один бит, что упростило без учета регистра сопоставление символов и создание клавиатур и принтеров.
Комитет X3 внес другие изменения, в том числе другие новые символы (скобка и вертикальная черта символы), переименовав некоторые управляющие символы (SOM стал началом заголовка (SOH )) и перемещение или удаление других (RU был удален). Впоследствии ASCII был обновлен как USAS X3.4-1967, затем USAS X3.4-1968, ANSI X3.4-1977 и, наконец, ANSI X3.4-1986.
Версии стандарта ASCII:
В стандарте X3.15 комитет X3 также рассмотрел, как следует передавать ASCII (младший бит первым) и как его следует записывать на перфорированную ленту. Они предложили стандарт 9-дорожек для магнитной ленты и попытались иметь дело с некоторыми форматами перфокарт.
Подкомитет X3.2 разработал ASCII на основе более ранних систем кодирования телетайпа. Как и другие кодировки символов , ASCII определяет соответствие между цифровыми битовыми комбинациями и символами символов (т.е. графем и управляющих символов ). Это позволяет цифровым устройствам взаимодействовать друг с другом, а также обрабатывать, хранить и передавать символьную информацию, такую как письменный язык. До разработки ASCII использовавшиеся кодировки включали 26 буквенных символов, 10 цифровых цифр и от 11 до 25 специальных графических символов. Чтобы включить все это, а также управляющие символы, совместимые со стандартом Международного телефонного комитета и телеграфного комитета (CCITT) Международного телеграфного алфавита № 2 (ITA2) 1924 года, FIELDATA (1956 г.) и ранний EBCDIC (1963 г.) для ASCII требовалось более 64 кодов.
ITA2, в свою очередь, основывались на 5-битном телеграфном коде Эмиля Бодо, изобретенном в 1870 году и запатентованном в 1874 году.
Комитет обсуждал возможность shift (например, в ITA2 ), которая позволяет представить более 64 кодов шестибитным кодом . В сдвинутом коде некоторые коды символов определяют выбор между вариантами для следующих кодов символов. Он допускает компактное кодирование, но менее надежен для передачи данных, поскольку ошибка при передаче кода сдвига обычно делает нечитаемую длинную часть передачи. Комитет по стандартам отказался от сдвига, и поэтому ASCII требовал как минимум семибитного кода.
Комитет рассмотрел восьмибитный код, поскольку восемь битов (октетов ) позволили бы двум четырем -битовые шаблоны для эффективного кодирования двух цифр с помощью десятичного двоичного кода. Однако при передаче всех данных потребуется восемь битов, когда достаточно семи. Комитет проголосовал за использование семибитного кода для минимизации затрат, связанных с передачей данных. Поскольку в то время перфорированная лента могла записывать восемь бит в одной позиции, она также позволяла использовать бит четности для проверки ошибок, если это необходимо. Восьмиразрядные машины ( с октетами в качестве собственного типа данных), в котором не использовалась проверка четности, восьмой бит обычно устанавливается равным 0. В некоторых принтерах старший бит использовался для включения печати курсивом.
Сам код был структурирован таким образом, что большинство контрольных кодов были вместе, а все графические коды были вместе, для простоты идентификации. Первые два так называемых стика ASCII (32 позиции) были зарезервированы для управляющих символов. «пробел» должен был стоять перед графикой, чтобы упростить сортировку, поэтому он стал позицией 20 шестнадцатеричный ; по той же причине многие специальные знаки, обычно используемые в качестве разделителей, ставились перед цифрами. Комитет решил, что важно поддерживать верхний регистр 64-символьный алфавит, и выбрал образец ASCII, чтобы его можно было легко сократить до пригодного для использования 64-символьного набора графических кодов, как это было выполнено в коде DEC SIXBIT (1963). Строчные буквы, следовательно, не чередовались с прописными. Чтобы сохранить параметры, доступные для строчных букв и другой графики, специальные и числовые коды были расположены перед буквами, а буква A была помещена в позицию 41 шестнадцатеричный, чтобы соответствовать черновику соответствующий британский стандарт. Цифры 0–9 имеют префикс 011, но оставшиеся 4 бита соответствуют их соответствующим значениям в двоичном формате, что упрощает преобразование с десятичным двоичным кодом.
Многие из не буквенно-цифровых символов были расположены так, чтобы соответствовать их смещенному положению на пишущих машинках; Важная тонкость заключается в том, что они были основаны на механических пишущих машинках, а не на электрических. Механические пишущие машинки следовали стандарту, установленному Remington No. 2 (1878 г.), первой пишущей машинке с клавишей Shift, и значения сдвига 23456789-
были "# $% _ & '()
- ранние пишущие машинки опускали 0 и 1, вместо этого использовали O (заглавная буква o) и l (строчная буква L), но пары 1!
и 0)
стали стандартными после 0 и 1. Таким образом, в ASCII ! "# $%
были помещены во второй стик, позиции 1–5, соответствующие цифрам 1–5 на соседнем стике. Однако круглые скобки не могут соответствовать 9 и 0, поскольку место, соответствующее 0, занимает пробел. Это было устранено путем удаления _
(подчеркивание) из 6 и сдвига оставшихся символов, что соответствовало многим европейским пишущим машинкам, которые помещали круглые скобки с 8 и 9. Это несоответствие с пишущими машинками привело к парным битам. клавиатуры, особенно Teletype Model 33, в котором использовалась раскладка с левым смещением, соответствующая ASCII, а не традиционным механическим пишущим машинкам. Электрические пишущие машинки, в частности IBM Selectric (1961), использовали несколько иную компоновку, которая стала стандартной для компьютеров - вслед за IBM PC (1981), особенно Model M (1984) - и, таким образом, значения сдвига для символов на современных клавиатурах не так точно соответствуют таблице ASCII, как это делали более ранние клавиатуры. Пара /?
также относится к №2, а пары ,<.>
использовались на некоторых клавиатурах (другие, включая №2, не сдвигали ,
(запятая ) или .
(точка), чтобы их можно было использовать в верхнем регистре без переноса). Однако ASCII разделил пару ;:
(начиная с № 2) и переупорядочил математические символы (различные соглашения, обычно - * = +
) на : *; + - =
.
Некоторые общие символы не были включены, в частности ½¼ ¢
, в то время как ^ `~
были включены в качестве диакритических знаков для международного использования и <>
для математического использования вместе с простые строчные символы \ |
(в дополнение к обычным /
). Символ @ не использовался в континентальной Европе, и комитет ожидал, что он будет заменен акцентированным À во французском варианте, поэтому @ был помещен в позицию 40 hex, прямо перед буква A.
Управляющими кодами, которые считались важными для передачи данных, были: начало сообщения (SOM), конец адреса (EOA), конец сообщения (EOM), конец передачи (EOT), "кто ты?" (WRU), "ты?" (RU), управление зарезервированным устройством (DC0), синхронный режим ожидания (SYNC) и подтверждение (ACK). Они были расположены так, чтобы максимизировать расстояние Хэмминга между их битовыми шаблонами.
Порядок кодов ASCII также называется порядком ASCIIbetical. Сопоставление данных иногда выполняется в этом порядке, а не в "стандартном" алфавитном порядке (последовательность сортировки ). Основные отклонения в порядке ASCII:
. Промежуточный порядок преобразует прописные буквы в строчные перед сравнением значений ASCII.
ASCII резервирует первые 32 кода (десятичные числа 0–31) для управляющих символов : коды, изначально предназначенные не для представляют информацию для печати, а скорее для управления устройствами (такими как принтеры ), которые используют ASCII, или для предоставления метаинформации о потоках данных, таких как те, которые хранятся на магнитной ленте.
Например, символ 10 представляет функцию «перевода строки» (которая заставляет принтер продвигать бумагу), а символ 8 представляет собой «возврат». RFC 2822 относится к управляющим символам, которые не включают возврат каретки, перевод строки или пробел в качестве непробельных управляющих символов. За исключением управляющих символов, которые предписывают элементарное строчно-ориентированное форматирование, ASCII не определяет никаких механизмов для описания структуры или внешнего вида текста в документе. Другие схемы, такие как языки разметки, адресная страница, макет и форматирование документа.
Исходный стандарт ASCII использовал только короткие описательные фразы для каждого управляющего символа. Вызванная этим неоднозначность иногда была преднамеренной, например, когда символ использовался в оконечной ссылке несколько иначе, чем в потоке данных , а иногда случайно, например, со значением «удалить».
Вероятно, наиболее влиятельным устройством для интерпретации этих символов был Teletype Model 33 ASR, который представлял собой печатный терминал с доступным устройством считывания / перфорации бумажной ленты. вариант. Бумажная лента была очень популярным носителем для долговременного хранения программ до 1980-х годов, менее дорогостоящим и в некоторых отношениях менее хрупким, чем магнитная лента. В частности, машинные назначения Teletype Model 33 для кодов 17 (Control-Q, DC1, также известный как XON), 19 (Control-S, DC3, также известный как XOFF) и 127 (Удалить ) стали стандартами де-факто. Модель 33 также примечательна тем, что буквально воспринимает описание Control-G (код 7, BEL, означающее звуковое оповещение оператора), поскольку устройство содержало настоящий звонок, который он звонил, когда получал символ BEL. Поскольку верхняя часть клавиши для клавиши O также имела символ стрелки влево (из ASCII-1963, в котором этот символ был вместо подчеркивания ), несоответствующее использование кода 15 (Control-O, Shift In) интерпретировалось так как «удалить предыдущий символ» также было принято во многих ранних системах разделения времени, но в конечном итоге им пренебрегли.
Когда ASR Teletype 33, оборудованный автоматическим считывателем бумажной ленты, получал Control-S (XOFF, сокращение для передачи выключено), это заставляло считыватель ленты останавливаться; получение Control-Q (XON, "передача включена") заставило ленточный ридер возобновить работу. Этот метод был принят несколькими ранними компьютерными операционными системами в качестве сигнала «квитирования», предупреждающего отправителя о прекращении передачи из-за надвигающегося переполнения; он сохраняется и по сей день во многих системах как метод ручного управления выводом. В некоторых системах Control-S сохраняет свое значение, но Control-Q заменяется вторым Control-S для возобновления вывода. 33 ASR также может быть настроен на использование Control-R (DC2) и Control-T (DC4) для запуска и остановки перфорации ленты; на некоторых устройствах, оснащенных этой функцией, соответствующие буквы управления на крышке клавиатуры над буквой были TAPE и TAPEсоответственно.
Телетайп не мог переместите голову назад, чтобы на клавиатуре не было клавиши для отправки BS (backspace). Вместо этого был ключ с пометкой RUB OUT, который отправлял код 127 (DEL). Назначение этой клавиши состояло в том, чтобы стереть ошибки на бумажной ленте, набранной вручную: оператору нужно было нажать кнопку на перфораторе, чтобы закрепить ее, затем набрать протирку, которая пробивала все отверстия и заменяла ошибку символом, который предназначено для игнорирования. Телетайпы обычно использовались для менее дорогих компьютеров от Digital Equipment Corporation, поэтому эти системы должны были использовать доступный ключ и, следовательно, код DEL для стирания предыдущего символа. Из-за этого видеотерминалы DEC (по умолчанию) отправляли код DEL для клавиши с меткой «Backspace», в то время как клавиша с меткой «Delete» отправляла escape-последовательность, в то время как многие другие терминалы отправляли BS для клавиши Backspace. Драйвер терминала Unix мог использовать только один код для стирания предыдущего символа, он мог быть установлен на BS или DEL, но не на оба, что приводило к длительному периоду раздражения, когда пользователям приходилось исправлять его в зависимости от того, какой терминал они использовали (оболочки которые позволяют редактировать строки, такие как ksh, bash и zsh, понимают оба). Предположение, что BS не отправил ключ, вызвало использование Control + H для других целей, таких как команда префикса "help" в GNU Emacs.
Многие другие управляющие коды имеют получили значения, совершенно отличные от их первоначальных. Например, «escape-символ» (ESC, код 27) изначально был предназначен для того, чтобы разрешить отправку других управляющих символов в виде литералов вместо того, чтобы вызывать их значение. Это то же значение «escape», которое встречается в кодировках URL, строках языка C, и других системах, где определенные символы имеют зарезервированное значение. Со временем это значение было адаптировано и в конечном итоге было изменено. В современном использовании ESC, отправляемый на терминал, обычно указывает начало последовательности команд, как правило, в форме так называемого «escape-кода ANSI » (или, точнее, «Control Sequence Introducer ") из ECMA-48 (1972) и его преемников, начиная с ESC, за которым следует символ" ["(левая скобка). ESC, отправляемый с терминала, чаще всего используется как внешний символ , используемый для завершения операции, как в TECO и vi. В графическом пользовательском интерфейсе (GUI) и оконных системах ESC обычно заставляет приложение прервать свою текущую операцию или выйти из (завершить) в целом.
Неоднозначность, присущая многим управляющим символам, в сочетании с их историческим использованием, создавала проблемы при передаче файлов «простого текста» между системами. Лучшим примером этого является проблема новой строки в различных операционных системах. В телетайпах требовалось, чтобы строка текста оканчивалась как «Возврат каретки» (который перемещает печатающую головку в начало строки), так и «Перенос строки» (который продвигает бумагу на одну строку без перемещения печатающей головки). Название «Возврат каретки» происходит от того факта, что на пишущей машинке с ручным управлением каретка, удерживающая бумагу, перемещалась, в то время как положение, в котором печатные полосы касались ленты, оставалось неизменным. Всю каретку нужно было сдвинуть (вернуть) вправо, чтобы расположить левое поле бумаги для следующей строки.
DEC операционные системы (OS / 8, RT-11, RSX-11, RSTS, TOPS-10 и т. Д.) Использовали оба символа для обозначения конца строки, чтобы устройство консоли (первоначально телетайп ) могло работать. К тому времени, когда появились так называемые «стеклянные TTY» (позже называемые ЭЛТ или терминалы), соглашение было настолько прочно закреплено, что обратная совместимость потребовала продолжения этого соглашения. Когда Гэри Килдалл создал CP / M, он был вдохновлен некоторыми соглашениями об интерфейсе командной строки, используемыми в DEC RT-11. До появления PC DOS в 1981 году, IBM не участвовали в этом, потому что их операционные системы 1970-х годов использовали EBCDIC вместо ASCII и были ориентированы на ввод с перфокарт и вывод на строчный принтер. на котором концепция возврата каретки была бессмысленной. IBM PC DOS (также продаваемая Microsoft как MS-DOS ) унаследовала это соглашение в силу того, что оно в значительной степени основано на CP / M, а Windows унаследовала его от MS-DOS.
К сожалению, требование двух символов для обозначения конца строки создает ненужную сложность и вопросы о том, как интерпретировать каждый символ, когда он встречается отдельно. Чтобы упростить задачу, потоки данных обычного текста,, включая файлы, в Multics использовали только перевод строки (LF) в качестве признака конца строки. Unix и Unix-подобные системы и системы Amiga переняли это соглашение от Multics. В исходной Macintosh OS, Apple DOS и ProDOS, с другой стороны, в качестве ограничителя строки использовался только возврат каретки (CR); однако, поскольку Apple заменила эти операционные системы операционной системой на основе Unix macOS, теперь они также используют перевод строки (LF). Radio Shack TRS-80 также использовал одиночный CR для завершения линий.
Компьютеры, подключенные к 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.
Монитор PDP-6 и его преемник PDP-10 TOPS-10 использовали Control-Z (SUB) в качестве индикатора конца файла для ввода с терминала. Некоторые операционные системы, такие как CP / M, отслеживали длину файла только в единицах дисковых блоков и использовали Control-Z, чтобы отметить конец фактического текста в файле. По этим причинам EOF, или конец файла, использовался в разговорной речи и условно как трехбуквенное сокращение для Control-Z вместо SUBstitute. Код конца текста (ETX ), также известный как Control-C, был неподходящим по ряду причин, в то время как использование Z в качестве управляющего кода для завершения файла является недопустимым. аналогично окончанию алфавита и служит очень удобным мнемоническим помощником. Исторически распространенное и до сих пор распространенное соглашение использует соглашение кода ETX для прерывания и остановки программы через поток входных данных, обычно с клавиатуры.
В библиотеке C и соглашениях Unix нулевой символ используется для завершения текстовых строк ; такие строки с завершающим нулем могут называться сокращенно как ASCIZ или ASCIIZ, где Z означает «ноль».
Двоичный | Окт | Дек | Шестнадцатеричный | Аббревиатура | Имя (1967) | |||||
---|---|---|---|---|---|---|---|---|---|---|
1963 | 1965 | 1967 | ||||||||
000 0000 | 000 | 0 | 00 | NULL | NUL | ␀ | ^@ | \0 | NULL | |
000 0001 | 001 | 1 | 01 | SOM | SOH | ␁ | ^A | Начало заголовка | ||
000 0010 | 002 | 2 | 02 | EOA | STX | ␂ | ^B | Начало Текст | ||
000 0011 | 003 | 3 | 03 | EOM | ETX | ␃ | ^C | Конец текста | ||
000 0100 | 004 | 4 | 04 | EOT | ␄ | ^D | Конец передачи | |||
000 0101 | 005 | 5 | 05 | WRU | ENQ | ␅ | ^E | Запрос | ||
000 0110 | 006 | 6 | 06 | RU | ACK | ␆ | ^F | Подтверждение | ||
000 0111 | 007 | 7 | 07 | BELL | BEL | ␇ | ^G | \a | Bell | |
000 1000 | 010 | 8 | 08 | FE0 | BS | ␈ | ^H | \b | Backspace | |
000 1001 | 011 | 9 | 09 | HT / SK | HT | ␉ | ^I | \t | Горизонтальная табуляция | |
000 1010 | 012 | 10 | 0A | LF | ␊ | ^J | \n | Перевод строки | ||
000 1011 | 013 | 11 | 0B | VTAB | VT | ␋ | ^K | \v | Вертикальная табуляция | |
000 1100 | 014 | 12 | 0C | FF | ␌ | ^L | \f | Подача страницы | ||
000 1101 | 015 | 13 | 0D | CR | ␍ | ^M | \r | возврат каретки | ||
000 1110 | 016 | 14 | 0E | SO | ␎ | ^N | Shift Out | |||
000 1111 | 017 | 15 | 0F | SI | ␏ | ^O | Входной сдвиг | |||
001 0000 | 020 | 16 | 10 | DC0 | DLE | ␐ | ^P | Прерывание канала данных | ||
001 0001 | 021 | 17 | 11 | DC1 | ␑ | ^Q | Device Control 1 (часто XON ) | |||
001 0010 | 022 | 18 | 12 | DC2 | ␒ | ^R | Управление устройством 2 | |||
001 0011 | 023 | 19 | 13 | DC3 | ␓ | ^S | Управление устройством 3 (часто XOFF ) | |||
001 0100 | 024 | 20 | 14 | DC4 | ␔ | ^T | Управление устройством 4 | |||
001 0101 | 025 | 21 | 15 | ERR | NAK | ␕ | ^U | Отрицательное подтверждение | ||
001 0110 | 026 | 22 | 16 | SYNC | SYN | ␖ | ^V | Synchronous Idle | ||
001 0111 | 027 | 23 | 17 | LEM | ETB | ␗ | ^W | Конец блока передачи | ||
001 1000 | 030 | 24 | 18 | S0 | CAN | ␘ | ^X | Отмена | ||
001 1001 | 031 | 25 | 19 | S1 | EM | ␙ | ^Y | Конец среды | ||
001 1010 | 032 | 26 | 1A | S2 | SS | SUB | ␚ | ^Z | Заменить | |
001 1011 | 033 | 27 | 1B | S3 | ESC | ␛ | ^[ | \e | Escape | |
001 1100 | 034 | 28 | 1C | S4 | FS | ␜ | ^\ | Разделитель файлов | ||
001 1101 | 035 | 29 | 1D | S5 | GS | ␝ | ^] | Разделитель групп | ||
001 1110 | 036 | 30 | 1E | S6 | RS | ␞ | ^^ | Разделитель записей | ||
001 1111 | 037 | 31 | 1F | S7 | US | ␟ | ^_ | Разделитель единиц | ||
111 1111 | 177 | 127 | 7F | DEL | ␡ | ^? | Удалить |
Специализированное оборудование может использовать другие изображения, например, ISO 2047 графика или шестнадцатеричные числа.
Коды от 20 шестнадцатеричный до 7E шестнадцатеричный, известные как печатные символы , представляют собой буквы, цифры, знаки препинания и несколько разных символов. Всего имеется 95 печатных символов.
Код 20 шестнадцатеричный, символ «пробела», обозначает пробел между словами, как они созданы клавишей пробела на клавиатуре. Поскольку пробел считается невидимым изображением (а не управляющим символом), он указан в таблице ниже, а не в предыдущем разделе.
Код 7F шестнадцатеричный соответствует непечатаемому управляющему символу «удаление» (DEL) и поэтому не указан в этой таблице; это описано в диаграмме предыдущего раздела. Более ранние версии ASCII использовали стрелку вверх вместо caret (5Ehex ) и стрелку влево вместо подчеркивания (5F шестнадцатеричный ).
двоичный | окт | декабрь | шестнадцатеричный | символ | ||
---|---|---|---|---|---|---|
1963 | 1965 | 1967 | ||||
010 0000 | 040 | 32 | 20 | пробел | ||
010 0001 | 041 | 33 | 21 | ! | ||
010 0010 | 042 | 34 | 22 | " | ||
010 0011 | 043 | 35 | 23 | # | ||
010 0100 | 044 | 36 | 24 | $ | ||
010 0101 | 045 | 37 | 25 | % | ||
010 0110 | 046 | 38 | 26 | & | ||
010 0111 | 047 | 39 | 27 | ' | ||
010 1000 | 050 | 40 | 28 | ( | ||
010 1001 | 051 | 41 | 29 | ) | ||
010 1010 | 052 | 42 | 2A | * | ||
010 1011 | 053 | 43 | 2B | + | ||
010 1100 | 054 | 44 | 2C | , | ||
010 1101 | 055 | 45 | 2D | - | ||
010 1110 | 056 | 46 | 2E | . | ||
010 1111 | 057 | 47 | 2F | / | ||
011 0000 | 060 | 48 | 30 | 0 | ||
011 0001 | 061 | 49 | 31 | 1 | ||
011 0010 | 062 | 50 | 32 | 2 | ||
011 0011 | 063 | 51 | 33 | 3 | ||
011 0100 | 064 | 52 | 34 | 4 | ||
011 0101 | 065 | 53 | 35 | 5 | ||
011 0110 | 066 | 54 | 36 | 6 | ||
011 0111 | 067 | 55 | 37 | 7 | ||
011 1000 | 070 | 56 | 38 | 8 | ||
011 1001 | 071 | 57 | 39 | 9 | ||
011 1010 | 072 | 58 | 3A | : | ||
011 1011 | 073 | 59 | 3B | ; | ||
011 1100 | 074 | 60 | 3C | < | ||
011 1101 | 075 | 61 | 3D | = | ||
011 1110 | 076 | 62 | 3E | > | ||
011 1111 | 077 | 63 | 3F | ? | ||
100 0000 | 100 | 64 | 40 | @ | ` | @ |
100 0001 | 101 | 65 | 41 | A | ||
100 0010 | 102 | 66 | 42 | B | ||
100 0011 | 103 | 67 | 43 | C | ||
100 0100 | 104 | 68 | 44 | D | ||
100 0101 | 105 | 69 | 45 | E | ||
100 0110 | 106 | 70 | 46 | F | ||
100 0111 | 107 | 71 | 47 | G | ||
100 1000 | 110 | 72 | 48 | H | ||
100 1001 | 111 | 73 | 49 | I | ||
100 1010 | 112 | 74 | 4A | J | ||
100 1011 | 113 | 75 | 4B | K | ||
100 1100 | 114 | 76 | 4C | L | ||
100 1101 | 115 | 77 | 4D | M | ||
100 1110 | 116 | 78 | 4E | N | ||
100 1111 | 117 | 79 | 4F | O | ||
101 0000 | 120 | 80 | 50 | P | ||
101 0001 | 121 | 81 | 51 | Q | ||
101 0010 | 122 | 82 | 52 | R | ||
101 0011 | 123 | 83 | 53 | S | ||
101 0100 | 124 | 84 | 54 | T | ||
101 0101 | 125 | 85 | 55 | U | ||
101 0110 | 126 | 86 | 56 | V | ||
101 0111 | 127 | 87 | 57 | W | ||
101 1000 | 130 | 88 | 58 | X | ||
101 1001 | 131 | 89 | 59 | Y | ||
101 1010 | 132 | 90 | 5A | Z | ||
101 1011 | 133 | 91 | 5B | [ | ||
101 1100 | 134 | 92 | 5C | \ | ~ | \ |
101 1101 | 135 | 93 | 5D | ] | ||
101 1110 | 136 | 94 | 5E | ↑ | ^ | |
101 1111 | 137 | 95 | 5F | ← | _ | |
110 0000 | 140 | 96 | 60 | @ | ` | |
110 0001 | 141 | 97 | 61 | a | ||
110 0010 | 142 | 98 | 62 | b | ||
110 0011 | 143 | 99 | 63 | c | ||
110 0100 | 144 | 100 | 64 | d | ||
110 0101 | 145 | 101 | 65 | e | ||
110 0110 | 146 | 102 | 66 | f | ||
110 0111 | 147 | 103 | 67 | g | ||
110 1000 | 150 | 104 | 68 | h | ||
110 1001 | 151 | 105 | 69 | i | ||
110 1010 | 152 | 106 | 6A | j | ||
110 1011 | 153 | 107 | 6B | k | ||
110 1100 | 154 | 108 | 6C | l | ||
110 1101 | 155 | 109 | 6D | m | ||
110 1110 | 156 | 110 | 6E | n | ||
110 1111 | 157 | 111 | 6F | o | ||
111 0000 | 160 | 112 | 70 | p | ||
111 0001 | 161 | 113 | 71 | q | ||
111 0010 | 162 | 114 | 72 | r | ||
111 0011 | 163 | 115 | 73 | s | ||
111 0100 | 164 | 116 | 74 | t | ||
111 0101 | 165 | 117 | 75 | u | ||
111 0110 | 166 | 118 | 76 | v | ||
111 0111 | 167 | 119 | 77 | w | ||
111 1000 | 170 | 120 | 78 | x | ||
111 1001 | 171 | 121 | 79 | y | ||
111 1010 | 172 | 122 | 7A | z | ||
111 1011 | 173 | 123 | 7B | { | ||
111 1100 | 174 | 124 | 7C | ACK | ¬ | | |
111 1101 | 175 | 125 | 7D | } | ||
111 1110 | 176 | 126 | 7E | ESC | | | ~ |
Точки, которые представляли другой символ в предыдущих версиях (версия 1963 года и / или черновик 1965 года), отображаются в рамке. Очки, присвоенные с версии 1963 года, но в остальном не изменившиеся, показаны слегка затененными относительно цвета их легенды.
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0_ 0 | NUL 0000 | SOH 0001 | STX 0002 | ETX 0003 | EOT 0004 | ENQ 0005 | ACK 0006 | BEL 0007 | BS 0008 | HT 0009 | LF 000A | VT 000B | FF 000C | CR 000D | SO 000E | SI 000F |
1_ 16 | DLE 0010 | DC1 0011 | DC2 0012 | DC3 0013 | DC4 0014 | NAK 0015 | SYN 0016 | ETB 0017 | CAN 0018 | EM 0019 | SUB 001A | ESC 001B | FS 001C | GS 001D | RS 001E | US 001F |
2_ 32 | SP 0020 | ! 0021 | " 0022 | # 0023 | $ 0024 | % 0025 | & 0026 | ' 0027 | ( 0028 | ) 0029 | * 002A | + 002B | , 002C | - 002D | . 002E | / 002F |
3_ 48 | 0 0030 | 1 0031 | 2 0032 | 3 0033 | 4 0034 | 5 0035 | 6 0036 | 7 0037 | 8 0038 | 9 0039 | : 003A | ; 003B | < 003C | = 003D | > 003E | ? 003F |
4_ 64 | @ 0040 | A 0041 | B 0042 | C 0043 | D 0044 | E 0045 | F 0046 | G 0047 | H 0048 | I 0049 | J 004A | K 004B | L 004C | M 004D | N 004E | O 004F |
5_ 80 | P 0050 | Q 0051 | R 0052 | S 0053 | T 0054 | U 0055 | V 0056 | W 0057 | X 0058 | Y 0059 | Z 005A | [ 005B | \ 005C | ] 005D | ^ 005E | _ 005F |
6_ 96 | ` 0060 | a 0061 | b 0062 | c 0063 | d 0064 | e 0065 | f 0066 | g 0067 | h 0068 | i 0069 | j 006A | k 006B | l 006C | m 006D | n 006E | o 006F |
7_ 112 | p 0070 | q 0071 | r 0072 | s 0073 | t 0074 | u 0075 | v 0076 | w 0077 | x 0078 | y 0079 | z 007A | { 007B | | 007C | } 007D | ~ 007E | DEL 007F |
Буква Число Знак препинания Символ Другое Неопределенный Символ изменено с версии 1963 года и / или проекта 1965 года
ASCII впервые был коммерчески использован в 1963 году как семибитный код телетайпа для TWX компании American Telephone & Telegraph (TeletypeWriter eXchange) сеть. TWX изначально использовал более раннюю пятибитную ITA2, которая также использовалась конкурирующей системой телетайпа Telex. Боб Бемер представил такие функции, как escape-последовательность. Его британский коллега Хью МакГрегор Росс помог популяризировать эту работу - по словам Бемера, «настолько, что код, который должен был стать ASCII, впервые в Европе был назван кодом Бемера – Росса». Из-за его обширной работы над ASCII, Бемера назвали «отцом ASCII».
11 марта 1968 года президент США Линдон Б. Джонсон обязал все компьютеры, приобретенные Федеральное правительство США поддерживает ASCII, заявив:
Я также одобрил рекомендации министра торговли [Лютера Х. Ходжеса ] относительно стандартов записи. Стандартный код для обмена информацией на магнитных лентах и бумажных лентах, когда они используются в компьютерных операциях. Все компьютеры и связанное с ними оборудование, внесенные в реестр Федерального правительства 1 июля 1969 года и после этой даты, должны иметь возможность использовать Стандартный код для обмена информацией и форматы, предписанные стандартами на магнитную ленту и бумажную ленту, когда используются эти носители.
ASCII был наиболее распространенной кодировкой символов в World Wide Web до декабря 2007 года, когда кодировка UTF-8 превзошла ее; UTF-8 обратно совместим с ASCII.
По мере распространения компьютерных технологий по всему миру различные органы стандартизации и корпорации разработали множество вариантов ASCII для облегчения выражение неанглийских языков, в которых использовались латинские алфавиты. Некоторые из этих вариантов можно классифицировать как «расширения ASCII », хотя некоторые неправильно используют этот термин для представления всех вариантов, включая те, которые не сохраняют карту символов ASCII в 7-битном диапазоне. Кроме того, расширения ASCII также были ошибочно обозначены как ASCII.
С самого начала своего развития ASCII задумывался как один из нескольких национальных вариантов международного стандарта символьных кодов.
Другие международные органы по стандартизации ратифицировали кодировки символов, такие как ISO 646 (1967), которые идентичны или почти идентичны ASCII, с расширениями для символов вне английского алфавита и используемые символы за пределами США, например, символ фунта стерлингов (£) Соединенного Королевства. Практически каждой стране была нужна адаптированная версия ASCII, поскольку ASCII удовлетворяла потребности только США и некоторых других стран. Например, в Канаде была собственная версия, поддерживающая французские символы.
Многие другие страны разработали варианты ASCII для включения неанглийских букв (например, é, ñ, ß, Ł ), символов валюты (например, £, ¥ ) и т. Д. См. Также YUSCII (Югославия).
Он будет использовать большинство общих символов, но назначит другие локально полезные символы нескольким кодовым точкам, зарезервированным для "национального использования". Однако четыре года, прошедшие между публикацией ASCII-1963 и первым принятием ISO международной рекомендации в 1967 году, привели к тому, что выбор ASCII для национальных символов использования стал казаться фактическими стандартами для мира, вызывая путаницу и несовместимость с другими странами. действительно начали делать свои собственные присвоения этим кодовым точкам.
ISO / IEC 646, как и ASCII, представляет собой 7-битный набор символов. Он не делает никаких дополнительных кодов доступными, поэтому одни и те же кодовые точки кодируют разные символы в разных странах. Коды выхода были определены, чтобы указать, какой национальный вариант применяется к фрагменту текста, но они использовались редко, поэтому часто было невозможно узнать, с каким вариантом работать и, следовательно, какой символ представляет код, и в целом текст. Системы обработки все равно могли справиться только с одним вариантом.
Поскольку скобки и фигурные скобки в ASCII были присвоены кодовым точкам "национального использования", которые использовались для букв с диакритическими знаками в других национальных вариантах ISO / IEC 646, немецкий, французский или шведский и т. Д. Программист при использовании своего национального варианта ISO / IEC 646, а не ASCII, приходилось писать и, следовательно, читать что-то вроде
ä aÄiÜ = 'Ön'; ü
вместо
{a [i] = '\ n'; }
Триграфы C были созданы для решения этой проблемы для ANSI C, хотя их позднее введение и непоследовательная реализация в компиляторах ограничили их использование. Многие программисты использовали на своих компьютерах кодировку US-ASCII, поэтому простой текст на шведском, немецком и т. Д. (Например, в электронной почте или Usenet ) содержал "{,}" и аналогичные варианты в середине слова, к чему привыкли эти программисты. Например, шведский программист, отправивший другому программисту письмо с просьбой пойти на обед, мог получить в качестве ответа «N {jag har sm | rg} sar», который должен быть «Nä jag har smörgåsar», что означает «Нет, у меня есть бутерброды ».
В конечном итоге, как 8-, 16- и 32-битные (и более поздние 64-битные ) компьютеры начали заменять 12-, 18- и 36-битные компьютеры в качестве нормы, стало обычным использование 8-битных байтов для хранить каждый символ в памяти, предоставляя возможность для расширенных 8-битных родственников ASCII. В большинстве случаев они развивались как истинные расширения ASCII, оставляя исходное отображение символов нетронутым, но добавляя дополнительные определения символов после первых 128 (т. Е. 7-битных) символов.
Кодировки включают ISCII (Индия), VISCII (Вьетнам). Хотя эти кодировки иногда называют ASCII, истинный ASCII определяется строго только стандартом ANSI.
Большинство ранних домашних компьютерных систем разработали свои собственные 8-битные наборы символов, содержащие рисование линий и игровые глифы, и часто заполняли некоторые или все управляющие символы от 0 до 31 дополнительной графикой. Kaypro CP / M компьютеры использовали «верхние» 128 символов для греческого алфавита.
Код PETSCII Commodore International, используемый для их 8-битных систем, вероятно, является уникальным среди кодов, выпущенных после 1970 года, поскольку он основан на ASCII- 1963, вместо более распространенного ASCII-1967, такого как на компьютере ZX Spectrum. Atari 8-битные компьютеры и Galaksija компьютеры также использовали варианты ASCII.
IBM PC определил кодовую страницу 437, которая заменяла управляющие символы графическими символами, такими как смайлики, и отображала дополнительные графические символы в верхние 128 позиций. Операционные системы, такие как DOS, поддерживали эти кодовые страницы, а производители компьютеров IBM поддерживали их аппаратно. Digital Equipment Corporation разработала Многонациональный набор символов (DEC-MCS) для использования в популярном терминале VT220 в качестве одного из первых расширений разработан больше для международных языков, чем для блочной графики. Macintosh определил , Mac OS Roman и Postscript также определили набор, оба из которых содержали как международные буквы, так и типографические знаки препинания вместо графики, более похожие на современные наборы символов.
Стандарт ISO / IEC 8859 (производный от DEC-MCS), наконец, предоставил стандарт, который копирует большинство систем (по крайней мере, так же точно, как они копировали ASCII, но с множеством замен). Еще одно популярное расширение, разработанное Microsoft, Windows-1252 (часто ошибочно обозначается как ISO-8859-1 ), добавляет типографские знаки препинания, необходимые для традиционной печати текста. ISO-8859-1, Windows-1252 и исходный 7-битный ASCII были наиболее распространенными кодировками символов до 2008 года, когда UTF-8 стал более распространенным.
Представлен ISO / IEC 4873 32 дополнительных управляющих кода, определенных в шестнадцатеричном диапазоне 80–9F , как часть расширения 7-битной кодировки ASCII до 8-битной системы.
Unicode и ISO / IEC 10646 Универсальный набор символов (UCS) имеют гораздо более широкий набор символов, и их различные формы кодирования начали быстро вытеснять ISO / IEC 8859 и ASCII во многих средах. В то время как ASCII ограничен 128 символами, Unicode и UCS поддерживают больше символов, разделяя концепции уникальной идентификации (с использованием натуральных чисел, называемых кодовыми точками) и кодирования (для 8-, 16- или 32-битных двоичных форматы, называемые UTF-8, UTF-16 и UTF-32 ).
ASCII был включен в набор символов Unicode (1991) в качестве первых 128 символов, поэтому 7-битные символы ASCII имеют одинаковые числовые коды в обоих наборах. Это позволяет UTF-8 быть обратно совместимым с 7-битным ASCII, поскольку файл UTF-8, содержащий только символы ASCII, идентичен файлу ASCII, содержащему ту же последовательность символов. Что еще более важно, прямая совместимость обеспечивается программным обеспечением, которое распознает только 7-битные символы ASCII как специальные и не изменяет байты с самым высоким битом (как это часто делается для поддержки 8-битных расширений ASCII, таких как ISO-8859-1) сохранит данные UTF-8 без изменений.
Викискладе есть носители, относящиеся к ASCII . |
| journal =
(help )[1]