Страница полузащищенная
Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

ASCII ( / æ s к я / ( слушать ) Об этом звуке ASS -kee ), [3] : 6 сокращенно от американского стандартного кода для обмена информации , является кодировка символов стандарта для электронной связи. Коды ASCII представляют текст в компьютерах, телекоммуникационном оборудовании и других устройствах. Большинство современных схем кодирования символов основаны на ASCII, хотя они поддерживают множество дополнительных символов.

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

ASCII - одна из основных вех IEEE .

Обзор

ASCII был разработан на основе телеграфного кода . Его первое коммерческое использование было в качестве семибитного кода телетайпа, продвигаемого Bell Data Services. Работа над стандартом ASCII началась 6 октября 1960 года на первом заседании подкомитета X3.2 Американской ассоциации стандартов (ASA) (ныне Американский национальный институт стандартов или ANSI). Первое издание стандарта было опубликовано в 1963 г. [4] [5] претерпело серьезные изменения в течение 1967 г. [6] [7], а последнее обновление было внесено в 1986 г. [8]По сравнению с более ранними телеграфными кодами, предлагаемый код Белла и ASCII были упорядочены для более удобной сортировки (т. Е. По алфавиту) списков и дополнительных функций для устройств, отличных от телетайпов. [ необходима цитата ]

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

Первоначально основанный на английском алфавите , ASCII кодирует 128 заданных символов в семибитовые целые числа, как показано на диаграмме ASCII выше. [11] Девяносто пять закодированных символов можно распечатать: это цифры от 0 до 9 , строчные буквы от a до z , прописные буквы от A до Z и символы пунктуации . Кроме того, исходная спецификация ASCII включала 33 непечатаемых управляющих кода, которые были созданы с помощью телетайпов ; большинство из них уже устарели, [12]хотя некоторые из них до сих пор широко используется, например, возврат каретки , перевод строки и табуляции кодов.

Например, строчная буква i будет представлена ​​в кодировке ASCII двоичным числом 1101001 = шестнадцатеричное 69 ( i - девятая буква) = десятичное 105.

История

ASCII (1963). Контрольные изображения эквивалентных элементов управления показаны там, где они есть, или серой точкой в ​​противном случае.

Американский стандартный код для обмена информацией (ASCII) был разработан под эгидой комитета Американской ассоциации стандартов (ASA), называемого комитетом X3, его подкомитетом X3.2 (позже X3L2), а затем - X3 этого подкомитета. 2.4 рабочая группа (сейчас INCITS ). ASA стал Институтом стандартов Соединенных Штатов Америки (USASI) [3] : 211 и, в конечном итоге, Американским национальным институтом стандартов (ANSI).

С заполненными другими специальными символами и управляющими кодами ASCII был опубликован как ASA X3.4-1963, [5] [13], оставив 28 кодовых позиций без какого-либо присвоенного значения, зарезервированного для будущей стандартизации, и один неназначенный управляющий код. [3] : 66, 245 В то время велись споры о том, должно ли быть больше управляющих символов, а не строчных букв. [3] : 435 Нерешительность длилась недолго: в мае 1963 года рабочая группа CCITT по новому телеграфному алфавиту предложила назначить строчные буквы на палочки [a] [14] 6 и 7, [15] и Международная организация по стандартизацииВ октябре TC 97 SC 2 проголосовал за включение изменения в проект стандарта. [16] Целевая группа X3.2.4 проголосовала за изменение ASCII на своем заседании в мае 1963 года. [17] локационная строчные буквы в палочках [а] [14] 6 и 7 , вызванные символы , которые различаются по битовой комбинации из верхнего корпуса с помощью одного бита, который упрощенного регистронезависимого согласования символов и конструкции клавиатуры и принтеров.

Комитет X3 внес другие изменения, включая другие новые символы ( скобки и вертикальные черты), [18] переименование некоторых управляющих символов (SOM стало началом заголовка (SOH)) и перемещение или удаление других (RU был удален). [3] : 247–248 ASCII был впоследствии обновлен как USAS X3.4-1967, [6] [19], затем USAS X3.4-1968, ANSI X3.4-1977 и, наконец, ANSI X3.4-1986. [8] [20]

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

  • ASA X3.4-1963 [3] [5] [19] [20]
  • ASA X3.4-1965 (утвержден, но не опубликован, тем не менее, используется станциями дисплея IBM 2260 и 2265 и системой управления дисплеем IBM 2848 ) [3] : 423, 425–428, 435–439 [21] [19] [20]
  • USAS X3.4-1967 [3] [6] [20]
  • USAS X3.4-1968 [3] [20]
  • ANSI X3.4-1977 [20]
  • ANSI X3.4-1986 [8] [20]
  • ANSI X3.4-1986 (R1992)
  • ANSI X3.4-1986 (R1997)
  • ANSI INCITS 4-1986 (R2002) [22]
  • ANSI INCITS 4-1986 (R2007) [23]
  • (ANSI) INCITS 4-1986 [R2012] [24]
  • (ANSI) INCITS 4-1986 [R2017] [25]

В стандарте X3.15 комитет X3 также рассмотрел, как следует передавать ASCII ( сначала младший бит ), [3] : 249–253 [26] и как его следует записывать на перфорированную ленту. Они предложили 9-дорожечный стандарт для магнитной ленты и попытались иметь дело с некоторыми форматами перфокарт .

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

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

Подкомитет X3.2 разработал ASCII на основе более ранних систем кодирования телетайпов. Как и другие кодировки символов , ASCII определяет соответствие между цифровыми битовыми комбинациями и символьными символами (то есть графемами и управляющими символами ). Это позволяет цифровым устройствам взаимодействовать друг с другом, а также обрабатывать, хранить и передавать символьную информацию, такую ​​как письменный язык. До того, как был разработан ASCII, используемые кодировки включали 26 буквенных символов, 10 числовых цифр и от 11 до 25 специальных графических символов. Чтобы включить все это, а также управляющие символы, совместимые сComité Consultatif International Téléphonique et Télégraphique (CCITT) Стандарт международного телеграфного алфавита № 2 (ITA2) 1924 года, [27] [28] FIELDATA (1956 [ требуется ссылка ] ) и ранний EBCDIC (1963), требовалось более 64 кодов для ASCII.

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

Комитет обсудил возможность использования функции сдвига (как в ITA2 ), которая позволила бы представить более 64 кодов шестибитным кодом . В сдвинутом коде некоторые коды символов определяют выбор между вариантами для следующих кодов символов. Он допускает компактное кодирование, но менее надежен для передачи данных , так как ошибка при передаче кода сдвига обычно делает нечитаемую длинную часть передачи. Комитет по стандартам отказался от сдвига, поэтому ASCII требовал как минимум семибитного кода. [3] : 215, 236 § 4

Комитет рассмотрел восьмибитный код, поскольку восемь битов ( октетов ) позволят двум четырехбитным шаблонам эффективно кодировать две цифры с двоичным десятичным числом . Однако при передаче всех данных потребуется восемь битов, когда достаточно семи. Комитет проголосовал за использование семибитного кода для минимизации затрат, связанных с передачей данных. Поскольку в то время перфорированная лента могла записывать восемь бит в одной позиции, при желании можно было использовать бит четности для проверки ошибок . [3] : 217, 236 §5 Восьмиразрядные машины (с октетами в качестве собственного типа данных), которые не использовали проверку четности, обычно устанавливают восьмой бит в 0. [29]

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

Сам код был составлен таким образом, чтобы большинство управляющих кодов были вместе, а все графические коды были вместе, для простоты идентификации. Первые два так называемых стика ASCII [a] [14] (32 позиции) были зарезервированы для управляющих символов. [3] : 220, 236 8,9) Символ «пробел» должен был стоять перед графикой, чтобы упростить сортировку , поэтому он стал шестнадцатеричной позицией 20 ; [3] : 237 §10 по той же причине многие специальные знаки, обычно используемые в качестве разделителей, ставились перед цифрами. Комитет решил, что важно поддерживать 64- значные буквы верхнего регистра. , и выбрал шаблон ASCII, чтобы его можно было легко сократить до пригодного для использования 64-символьного набора графических кодов, [3] : 228, 237 §14, как это было сделано в коде DEC SIXBIT (1963). Таким образом, строчные буквы не чередуются с прописными. Чтобы сохранить возможности для строчных букв и другой графики, специальные и числовые коды были расположены перед буквами, а буква A была помещена в шестнадцатеричную позицию 41, чтобы соответствовать проекту соответствующего британского стандарта. [3] : 238 §18 Цифры 0–9 имеют префикс 011, но оставшиеся 4 бита соответствуют их соответствующим значениям в двоичном формате, что делает преобразование сдвоично-десятичная дробь .

Многие не буквенно-цифровые символы были расположены так, чтобы соответствовать их смещенному положению на пишущих машинках; Важная тонкость заключается в том, что они были основаны на механических пишущих машинках, а не на электрических . [30] Механические пишущие машинки следовали стандарту, установленному Remington No. 2 (1878 г.), первой пишущей машинке с клавишей Shift, и сдвинутые значения 23456789-были "#$%_&'() - ранние пишущие машинки опускали 0 и 1 , используя O (заглавная буква o ) и l. (строчная буква L ) вместо этого, но 1!и 0)пары стали стандартными, когда 0 и 1 стали общими. Таким образом, в ASCII!"#$%были помещены во второй стик, [a] [14] позиции 1–5, соответствующие цифрам 1–5 на соседнем джойстике. [a] [14] Скобки не могут соответствовать 9 и 0 , потому что место, соответствующее 0, занимает пробел. Это было выполнено путем удаления _(подчеркивания) из 6 и сдвига оставшихся символов, что соответствовало многим европейским пишущим машинкам, которые помещали круглые скобки с 8 и 9 . Это несоответствие с пишущими машинками привело к появлению парных клавиатур , особенно к Teletype Model 33., в котором использовалась раскладка со смещением влево, соответствующая ASCII, а не традиционным механическим пишущим машинкам. Электрические пишущие машинки, особенно IBM Selectric (1961), использовали несколько иную компоновку, которая стала стандартной для компьютеров - после IBM PC (1981), особенно Model M (1984) - и, таким образом, значения сдвига для символов на современных клавиатурах не соответствуют так же близко к таблице ASCII, как это делали более ранние клавиатуры. /?Пара также даты к № 2, и ,< .>пар были использованы на некоторых клавиатурах (другие, в том числе № 2, не перекладывал ,(запятая) или .(полная остановка) , чтобы они могли быть использованы в верхнем регистре без unshifting). Однако ASCII разделил;:пара (датируемая № 2) и переставленные математические символы (обычно меняются условности -* =+) на :* ;+ -=.

Некоторые общие символы не были включены, в частности ½¼¢, в то время как они ^`~были включены как диакритические знаки для международного использования и <>для математического использования вместе с простыми строчными символами \|(в дополнение к общим /). Символ @ не использовался в континентальной Европе, и комитет ожидал, что он будет заменен акцентированным À во французском варианте, поэтому @ был помещен в шестнадцатеричную позицию 40 , прямо перед буквой A. [3] : 243

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

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

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

  • Все прописные буквы идут перед строчными; например, "Z" предшествует "a"
  • Перед буквами ставятся цифры и многие знаки препинания

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

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

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

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

Например, символ 10 представляет функцию «перевода строки» (которая заставляет принтер продвигать бумагу), а символ 8 представляет собой «возврат». RFC  2822 относится к управляющим символам, которые не включают возврат каретки, перевод строки или пробелы, как непробельные управляющие символы. [32] За исключением управляющих символов, которые предписывают элементарное строчно-ориентированное форматирование, 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) интерпретировалось как «удалить предыдущий символ» был также принят во многих ранних системах разделения времени, но в конечном итоге стал игнорироваться.

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

Удалить и Backspace

Телетайп не мог сдвинуть голову назад, поэтому он не помещал на клавиатуре клавишу для отправки BS (backspace). Вместо этого был помечен ключ RUB OUT, отправивший код 127 (DEL). Назначение этой клавиши состояло в том, чтобы стереть ошибки на бумажной ленте, набранной вручную: оператору нужно было нажать кнопку на перфораторе, чтобы закрепить ее, затем набрать протирку, которая пробивала все отверстия и заменяла ошибку символом, который предназначено для игнорирования. [34] Телетайпы обычно использовались для менее дорогих компьютеров от Digital Equipment Corporation , поэтому эти системы должны были использовать доступный ключ и, следовательно, код DEL для стирания предыдущего символа. [35] [36]Из-за этого видеотерминалы DEC (по умолчанию) отправляли код DEL для клавиши с пометкой «Backspace», в то время как клавиша с пометкой «Delete» отправляла escape-последовательность, в то время как многие другие терминалы отправляли BS для клавиши Backspace. Драйвер терминала Unix мог использовать только один код для стирания предыдущего символа, он мог быть установлен на BS или DEL, но не на оба, что приводило к длительному периоду раздражения, когда пользователям приходилось исправлять его в зависимости от того, какой терминал они использовали (оболочки которые позволяют редактировать строки, такие как ksh , bash и zsh , понимают оба). Предположение, что ни один ключ не отправил BS, привело к тому, что Control + H использовался для других целей, таких как команда префикса "help" в GNU Emacs . [37]

Побег

Многие другие управляющие коды получили значения, совершенно отличные от их первоначальных. Например, «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 и т. Д.) Использовали оба символа для обозначения конца строки, чтобы консольное устройство (первоначально машины Teletype ) могло работать. К тому времени, когда появились так называемые «стеклянные TTY» (позже названные ЭЛТ или терминалы), соглашение было настолько прочно закреплено, что обратная совместимость потребовала продолжения этого соглашения. Когда Килдалл создал CP / M , он был вдохновлен некоторыми конвенциями интерфейса командной строки , используемых в Декабре «s RT-11 . До появления PC DOS в 1981 году IBMне имели к этому никакого отношения, потому что их операционные системы 1970-х годов использовали EBCDIC вместо ASCII и были ориентированы на ввод с перфокарт и вывод на строчный принтер, в которых концепция возврата каретки была бессмысленной. IBM PC DOS (также позиционируемая как MS-DOS Microsoft) унаследовала это соглашение в силу того, что она была частично основана на CP / M [38], а Windows унаследовала его от MS-DOS.

К сожалению, требование двух символов для обозначения конца строки создает ненужную сложность и вопросы о том, как интерпретировать каждый символ, когда он встречается отдельно. Чтобы упростить дело, потоки данных в виде обычного текста , включая файлы, в Multics [39] использовали только перевод строки (LF) в качестве признака конца строки. Unix и Unix-подобные системы, а также системы Amiga переняли это соглашение от Multics. В исходных версиях Macintosh OS , Apple DOS и ProDOS , с другой стороны, в качестве ограничителя строки использовался только возврат каретки (CR); однако, поскольку Apple заменила эти операционные системы на macOS на базе Unixоперационной системы, теперь они также используют перевод строки (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. [40] Протокол передачи файлов принят протокол Telnet, включая использование сетевого виртуального терминала, для использования при передаче команд и передачи данных в режиме ASCII - умолчанию. [41] [42] Это добавляет сложность реализации этих протоколов, а также других сетевых протоколов, таких как используемые для электронной почты и World Wide Web, в системах, не использующих соглашение NVT о завершении строк CR-LF. [43][44]

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

Монитор PDP-6, [35] и его преемник PDP-10, TOPS-10, [36] использовали Control-Z (SUB) в качестве индикатора конца файла для ввода с терминала. Некоторые операционные системы, такие как CP / M, отслеживали длину файла только в единицах дисковых блоков и использовали Control-Z, чтобы отметить конец фактического текста в файле. [45] По этим причинам EOF, или конец файла , использовался в разговорной речи и традиционно как трехбуквенный акроним для Control-Z вместо SUBstitute. Код конца текста ( ETX ), также известный как Control-C , был неподходящим по ряду причин, в то время как использование Z в качестве управляющего кода для завершения файла аналогично завершению алфавита и служит очень удобныммнемоническая помощь . Исторически распространенное и до сих пор распространенное соглашение использует соглашение кода ETX для прерывания и остановки программы через поток входных данных, обычно с клавиатуры.

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

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

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

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

Коды от 20 шестнадцатеричного до 7E шестнадцатеричного , известные как печатные символы, представляют буквы, цифры, знаки препинания и несколько различных символов. Всего имеется 95 печатных символов. [м]

Шестнадцатеричный код 20 , символ «пробел» , обозначает пробел между словами, который создается клавишей пробела на клавиатуре. Поскольку пробел считается невидимым изображением (а не управляющим символом) [3] : 223 [46], он указан в таблице ниже, а не в предыдущем разделе.

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

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

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

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

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

ASCII был впервые коммерчески использован в 1963 году в качестве семибитного кода телетайпа для сети TWX (TeletypeWriter eXchange) компании American Telephone & Telegraph . Первоначально TWX использовала более раннюю пятиразрядную систему ITA2 , которая также использовалась конкурирующей системой телетайпа Telex . Боб Бемер представил такие функции, как escape-последовательность . [4] Его британский коллега Хью МакГрегор Росс помог популяризировать эту работу - по словам Бемера, «настолько, что код, который должен был стать ASCII, впервые в Европе был назван кодом Бемера – Росса ». [48] Из-за его обширной работы над ASCII, Бемера назвали «отцом ASCII».[49]

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

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

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

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

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

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

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

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

Многие другие страны разработали варианты ASCII для включения неанглийских букв (например, é , ñ , ß , Ł ), символов валюты (например, £ , ¥ ) и т. Д. См. Также YUSCII (Югославия).

Он будет иметь большинство общих символов, но назначать другие локально полезные символы нескольким кодовым точкам, зарезервированным для "национального использования". Однако четыре года, прошедшие между публикацией ASCII-1963 и первым принятием ISO международной рекомендации в 1967 году [57], привели к тому, что выбор 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-битные коды

В конце концов, когда 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 код Коммодор Международный используется для их 8-битных систем, вероятно , уникален среди пост-1970 кодов в настоящее время на основе ASCII-1963, вместо более общего ASCII-1967, например , как найти на ZX Spectrum компьютера. 8-битные компьютеры Atari и компьютеры Galaksija также использовали варианты ASCII.

IBM PC определил кодовую страницу 437 , которая заменяла управляющие символы графическими символами, такими как смайлы , и отображала дополнительные графические символы на верхние 128 позиций. Операционные системы, такие как DOS, поддерживали эти кодовые страницы, а производители компьютеров IBM поддерживали их аппаратно. Digital Equipment Corporation разработала многонациональный набор символов (DEC-MCS) для использования в популярном терминале VT220 в качестве одного из первых расширений, предназначенных больше для международных языков, чем для блочной графики. Macintosh определил Mac OS Роман и Postscript также определил набор, оба из которых содержали как международные буквы, так и типографские знаки препинания вместо графики, больше похожей на современные наборы символов.

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

ISO / IEC 4873 представил 32 дополнительных управляющих кода, определенных в шестнадцатеричном диапазоне 80–9F , как часть расширения 7-битного кодирования ASCII до 8-битной системы. [58]

Unicode

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 без изменений. [59]

Смотрите также

  • 3568 ASCII , астероид назван в честь кодировки символов
  • Альтернативные коды
  • Ascii85
  • ASCII искусство
  • Кампания ASCII Ribbon
  • Базовая латиница (блок Unicode) (ASCII как подмножество Unicode)
  • Расширенный ASCII
  • Отображение десятичных символов HTML
  • Файл жаргона , глоссарий сленга компьютерных программистов, который включает список общих сленговых имен для символов ASCII.
  • Список компьютерных наборов символов
  • Список символов Юникода

Примечания

  1. ^ а б в г д 128 символов 7-битного набора символов ASCII разделены на восемь 16-символьных групп, называемых палками 0–7, связанных с тремя старшими битами . [14] В зависимости от горизонтального или вертикального представления карты символов палочки соответствуют либо строкам таблицы, либо столбцам.
  2. ^ В Unicode символы из области U + 2400 до U + 2421 зарезервированы для представления управляющих символовкогда необходимо напечатать или отобразить иха не иметь их выполняют свою намеченную функцию. Некоторые браузеры могут не отображать их должным образом.
  3. ^ Нотация каретки часто используется для обозначения управляющих символов на терминале. На большинстве текстовых терминалов нажатиеCtrlклавиши при вводе второго символа приводит к вводу управляющего символа. Иногда клавиша Shift не нужна, например,^@ее можно набрать с помощью только Ctrl и 2.
  4. ^ Управляющие последовательности символовв языке программирования C и многих других языках, на которые он повлиял, например, Java и Perl (хотя не все реализации обязательно поддерживают все escape-последовательности).
  5. ^ Символ Backspace также можно ввести, нажав← Backspaceклавишу в некоторых системах.
  6. ^ a b Неоднозначность Backspace связана с тем, что первые терминалы были разработаны, предполагая, что основное использование клавиатуры будет заключаться в перфорации бумажной ленты вручную, когда она не подключена к компьютеру. Чтобы удалить предыдущий символ, нужно было сделать резервную копию дырокола с бумажной лентой, который по причинам механики и простоты был кнопкой на самом пуансоне, а не на клавиатуре, затем ввести символ затирания. Поэтому они поместили клавишу, вызывающую стирание, в месте, используемом на пишущих машинках для возврата. Когда системы использовали эти терминалы и обеспечивали редактирование в командной строке, им приходилось использовать код «rubout» для выполнения возврата и часто не интерпретировали символ возврата (они могли отражать "^H"для backspace). Другие терминалы, не предназначенные для бумажной ленты, заставляли ключ в этом месте производить Backspace, и системы, разработанные для них, использовали этот символ для резервного копирования. Поскольку код удаления часто производил эффект backspace, это также вынудило производителей терминалов сделать любая Deleteклавиша производит что-то кроме символа удаления.
  7. ^ Вбольшинстве систем символ табуляции также можно ввести, нажавTab ↹клавишу.
  8. ^ Символ возврата каретки также можно ввести, нажав клавишу↵ EnterилиReturnв большинстве систем.
  9. ^ Управляющая\e последовательность не является частью ISO C и многих других языковых спецификаций. Однако это понимают несколько компиляторов, включая GCC .
  10. ^ Символ Escape также можно ввести, нажавEscклавишу в некоторых системах.
  11. ^ ^^ средстваCtrl+^(нажатие клавиши "Ctrl" и CARET ключей).
  12. ^ Внекоторых системах символ удаления иногда можно ввести, нажав← Backspaceклавишу.
  13. ^ Распечатанные символы:
     ! "# $% & '() * +, -. / 0123456789:; <=>? @ ABCDEFGHIJKLMNOPQRSTUVWXYZ [\] ^ _` abcdefghijklmnopqrstuvwxyz {|} ~

Рекомендации

  1. ^ ANSI (1975-12-01). ISO-IR-006: Набор графических символов ASCII (PDF) . ITSCJ / IPSJ .
  2. ^ a b «Наборы символов» . Управление по распределению номеров в Интернете (IANA) . 2007-05-14 . Проверено 25 августа 2019 .
  3. ^ a b c d e f g h i j k l m n o p q r s Маккензи, Чарльз Э. (1980). Наборы кодированных символов, история и развитие (PDF) . Серия системного программирования (1-е изд.). Эддисон-Уэсли Паблишинг Компани, Инк. Стр. 6, 66, 211, 215, 217, 220, 223, 228, 236–238, 243–245, 247–253, 423, 425–428, 435–439. ISBN  978-0-201-14460-4. LCCN  77-90165 . Архивировано 26 мая 2016 года (PDF) . Проверено 25 августа 2019 года .
  4. ^ a b Брандел, Мэри (1999-07-06). «1963: Дебют ASCII» . CNN . Архивировано 17 июня 2013 года . Проверено 14 апреля 2008 .
  5. ^ a b c d «Американский стандартный код для обмена информацией, ASA X3.4-1963» . Американская ассоциация стандартов (ASA). 1963-06-17 . Проверено 6 июня 2020 .
  6. ^ a b c «Стандартный код США для обмена информацией, USAS X3.4-1967». Институт стандартов Соединенных Штатов Америки (USASI). 1967-07-07. Цитировать журнал требует |journal=( помощь )
  7. ^ Дженнингс, Томас Дэниел (2016-04-20) [1999]. «Аннотированная история некоторых кодов символов или ASCII: Американский стандартный код для проникновения информации» . Чувствительные исследования (SR-IX) . Проверено 8 марта 2020 .
  8. ^ a b c "Американский национальный стандарт для информационных систем - Наборы кодированных символов - 7-битный Американский национальный стандартный код для обмена информацией (7-битный ASCII), ANSI X3.4-1986". Американский национальный институт стандартов (ANSI). 1986-03-26. Цитировать журнал требует |journal=( помощь )
  9. ^ Винт Серф (1969-10-16). Формат ASCII для сетевого обмена . IETF . DOI : 10,17487 / RFC0020 . RFC 20 .
  10. ^ Барри Лейба (2015-01-12). «Правильная классификация RFC 20 (формат ASCII) по стандарту Интернета» . IETF .
  11. ^ Ширли, Р. (август 2007 г.), Глоссарий по безопасности Интернета, версия 2 , RFC 4949 , заархивировано из оригинала 13 июня 2016 г. , извлечено 13 июня 2016 г. 
  12. ^ Майни, Анил Кумар (2007). Цифровая электроника: принципы, устройства и приложения . Джон Уайли и сыновья . п. 28. ISBN 978-0-470-03214-5. Кроме того, он определяет коды для 33 непечатаемых, в основном устаревших управляющих символов, которые влияют на обработку текста.
  13. ^ Bukstein, Ed (июль 1964). «Двоичные компьютерные коды и ASCII» . Мир электроники . 72 (1): 28–29. Архивировано из оригинала на 2016-03-03 . Проверено 22 мая 2016 .
  14. ^ a b c d e f Бемер, Роберт Уильям (1980). «Глава 1: Внутри ASCII» (PDF) . Программное обеспечение общего назначения . Лучшее в эпоху интерфейсов. 2 . Портленд, Орегон, США: dilithium Press. С. 1–50. ISBN  978-0-918398-37-6. LCCN  79-67462 . Архивировано из оригинала на 2016-08-27 . Проверено 27 августа 2016 , из:
    • Бемер, Роберт Уильям (май 1978 г.). «Внутри ASCII - Часть I». Возраст интерфейса . 3 (5): 96–102.
    • Бемер, Роберт Уильям (июнь 1978 г.). «Внутри ASCII - Часть II». Возраст интерфейса . 3 (6): 64–74.
    • Бемер, Роберт Уильям (июль 1978 г.). «Внутри ASCII - Часть III». Возраст интерфейса . 3 (7): 80–87.
  15. Краткий отчет: заседание рабочей группы CCITT по новому телеграфному алфавиту, 13–15 мая 1963 г.
  16. Отчет ISO / TC / 97 / SC 2 - Встреча 29–31 октября 1963 г.
  17. ^ Отчет о целевой группе X3.2.4, 11 июня 1963 года, Пентагон здание, Вашингтон, округ Колумбия.
  18. ^ Отчет о совещании № 8, Целевая группа X3.2.4, 17 и 18 декабря 1963 года
  19. ^ a b c Винтер, Дик Т. (2010) [2003]. «Американские и международные стандарты: ASCII» . Архивировано из оригинала на 2010-01-16.
  20. ^ Б с д е е г Salste, Туомас (январь 2016). «7-битные наборы символов: версии ASCII» . Aivosto Oy. урна: nbn: fi-fe201201011004 . Архивировано 13 июня 2016 года . Проверено 13 июня 2016 .
  21. ^ «Информация». Scientific American (специальный выпуск). 215 (3). Сентябрь 1966 г. JSTOR e24931041 . 
  22. ^ Корпела, Юкка К. (2014-03-14) [2006-06-07]. Unicode Explained - интернационализация документов, программ и веб-сайтов (2-й выпуск 1-го изд.). O'Reilly Media, Inc. стр. 118. ISBN 978-0-596-10121-3.
  23. ^ ANSI INCITS 4-1986 (R2007): Американский национальный стандарт для информационных систем - Наборы кодированных символов - 7-битный Американский национальный стандартный код для обмена информацией (7-битный ASCII) (PDF) , 2007 [1986], архив (PDF) из оригинала от 07.02.2014 , получено 12.06.2016
  24. ^ «INCITS 4-1986 [R2012]: Информационные системы - Наборы кодированных символов - 7-битный американский национальный стандартный код для обмена информацией (7-битный ASCII)» . 2012-06-15. Архивировано 28 февраля 2020 года . Проверено 28 февраля 2020 .
  25. ^ «INCITS 4-1986 [R2017]: Информационные системы - Наборы кодированных символов - 7-битный американский национальный стандартный код для обмена информацией (7-битный ASCII)» . 2017-11-02 [2017-06-09]. Архивировано 28 февраля 2020 года . Проверено 28 февраля 2020 .
  26. ^ Битовая последовательность Американского национального стандартного кода для обмена информацией при последовательной побитовой передаче данных , Американский национальный институт стандартов (ANSI), 1966, X3.15-1966
  27. ^ "BruXy: Радиотелетайп связи" . 2005-10-10. Архивировано 12 апреля 2016 года . Проверено 9 мая 2016 . В передаваемом коде используется международный телеграфный алфавит № 2 (ITA-2), введенный CCITT в 1924 году.
  28. ^ a b Смит, Гил (2001). «Коды телетайпа» (PDF) . Baudot.net. Архивировано (PDF) из оригинала 20 августа 2008 года . Проверено 11 июля 2008 .
  29. ^ Сойер, Стэнли А .; Кранц, Стивен Джордж (1995). Учебник TeX для ученых . CRC Press, LLC . п. 13. Bibcode : 1995tps..book ..... S . ISBN 978-0-8493-7159-2. Архивировано 22 декабря 2016 года . Проверено 29 октября 2016 .
  30. ^ Савард, Джон JG "Компьютерные клавиатуры" . Архивировано 24 сентября 2014 года . Проверено 24 августа 2014 .
  31. ^ "ASCIIбетическое определение" . Журнал ПК . Архивировано 9 марта 2013 года . Проверено 14 апреля 2008 .
  32. ^ Resnick, P. (апрель 2001 г.), Internet Message Format , RFC 2822 , заархивировано из оригинала 13 июня 2016 г. , получено 13 июня 2016 г.  (NB. NO-WS-CTL.)
  33. ^ Макконнелл, Роберт; Хейнс, Джеймс; Уоррен, Ричард. «Понимание кодов ASCII» . Архивировано 27 февраля 2014 года . Проверено 11 мая 2014 .
  34. ^ Барри Марголин (2014-05-29). «Re: история редактора и текстового процессора (было: Re: RTF для emacs)» . help-gnu-emacs (список рассылки). Архивировано 14 июля 2014 года . Проверено 11 июля 2014 .
  35. ^ a b "Руководство по мультипрограммной системе PDP-6" (PDF) . Корпорация цифрового оборудования (DEC). 1965. с. 43. Архивировано (PDF) из оригинала 14.07.2014 . Проверено 10 июля 2014 .
  36. ^ a b «Справочное руководство PDP-10, Книга 3, Связь с монитором» (PDF) . Корпорация цифрового оборудования (DEC). 1969. с. 5-5. Архивировано (PDF) из оригинала на 2011-11-15 . Проверено 10 июля 2014 .
  37. ^ "Справка - Руководство по GNU Emacs" . Архивировано 11 июля 2018 года . Проверено 11 июля 2018 .
  38. ^ Тим Патерсон (2007-08-08). "Является ли DOS грабежом CP / M?" . DosMan Drivel . Архивировано 20 апреля 2018 года . Проверено 19 апреля 2018 .
  39. ^ Оссанна, JF ; Зальцер, Дж. Х. (17–19 ноября 1970 г.). «Технические и инженерные проблемы подключения терминалов к системе с разделением времени» (PDF) . Труды 17-19 ноября 1970 года, Fall Joint Computer конференции (FJCC) . п. 357: AFIPS Press. С. 355–362. Архивировано (PDF) из оригинала 19 августа 2012 года . Проверено 29 января 2013 . Использование функции «новой строки» (комбинированного возврата каретки и перевода строки) проще как для человека, так и для машины, чем использование обеих функций для начала новой строки; Американский национальный стандарт X3.4-1968 разрешает коду перевода строки нести значение новой строки.CS1 maint: location (link)
  40. ^ О'Салливан, Т. (1971-05-19), TELNET протокол , Internet Engineering Task Force (IETF), стр. 4-5, RFC 158 , в архиве с оригинала на 2016-06-13 , извлекаться 2013-01 -28 
  41. ^ Нейгус, Нэнси Дж. (1973-08-12), Протокол передачи файлов , Инженерная группа Интернета (IETF), RFC 542 , заархивировано из оригинала 13 июня 2016 г. , получено 28 января 2013 г. 
  42. ^ Постел, Джон (июнь 1980 г.), Протокол передачи файлов , Инженерная группа Интернета (IETF), RFC 765 , заархивировано из оригинала 13 июня 2016 г. , получено 28 января 2013 г. 
  43. ^ "План перевода EOL для Mercurial" . Меркуриал. Архивировано 16 июня 2016 года . Проверено 24 июня 2017 .
  44. ^ Бернштейн, Дэниел Дж. «Голые LF в SMTP» . Архивировано 29 октября 2011 года . Проверено 28 января 2013 .
  45. ^ Руководство по интерфейсу CP / M 1.4 (PDF) . Цифровые исследования . 1978. стр. 10. Архивировано (PDF) из оригинала 29.05.2019 . Проверено 7 октября 2017 .
  46. ^ Серф, Винтон Грей (1969-10-16), формат ASCII для сетевого обмена , сетевая рабочая группа, RFC 20 , заархивировано из оригинала 13 июня 2016 г. , получено 13 июня 2016 г. (NB. Формулировка почти идентична USAS X3.4-1968, за исключением вступления.)
  47. ^ Haynes, Джим (2015-01-13). «Из первых рук: Чад - наш самый важный продукт: инженерные воспоминания о корпорации Teletype» . Вики по истории инженерии и технологий (ETHW). Архивировано 31 октября 2016 года . Проверено 31 октября 2016 . Произошло изменение с 1961 ASCII на 1968 ASCII. Некоторые компьютерные языки использовали символы ASCII 1961 года, такие как стрелка вверх и стрелка влево. Эти символы исчезли из ASCII 1968 года. Мы работали с Фредом Мокингом, который к тому моменту работал в отделе продаж Teletype , над типовым цилиндром, который скомпрометировал бы изменяющиеся символы, так что значения ASCII 1961 года не были полностью потеряны. Знак подчеркивания был выполнен скорее в форме клина, поэтому он также мог служить стрелкой влево.
  48. ^ Бемер, Роберт Уильям . «Bemer встречает Европу (компьютерные стандарты) - виньетки по истории компьютеров» . Trailing-edge.com. Архивировано из оригинала на 2013-10-17 . Проверено 14 апреля 2008 .(NB. Бемер работал в IBM в то время.)
  49. ^ «Роберт Уильям Бемер: Биография» . 2013-03-09. Архивировано 16 июня 2016 года.
  50. ^ Джонсон, Линдон Бейнс (1968-03-11). «Меморандум об утверждении принятия Федеральным правительством Стандартного кодекса обмена информацией» . Проект американского президентства. Архивировано 14 сентября 2007 года . Проверено 14 апреля 2008 .
  51. ^ Ричард С. Шуффорд (1996-12-20). "Re: Ранняя история ASCII?" . Группа новостейalt.folklore.computers . Usenet: [email protected] . 
  52. ^ Фольц, Гарольд С .; Карп, Гарри, ред. (1982-02-01). Сборник стандартов передачи данных (2-е изд.). ISBN McGraw-Hill Inc.  978-0-07-021457-6.
  53. ^ Dubost, Карл (2008-05-06). «Рост UTF-8 в Интернете» . Блог W3C . Консорциум World Wide Web . Архивировано 16 июня 2016 года . Проверено 15 августа 2010 .
  54. ^ а б Дэвис, Марк (2008-05-05). «Переход на Unicode 5.1» . Официальный блог Google . Архивировано 16 июня 2016 года . Проверено 15 августа 2010 .
  55. ^ Дэвис, Марк (28 января 2010 г.). «Юникод приближается к 50% Интернета» . Официальный блог Google . Архивировано 16 июня 2016 года . Проверено 15 августа 2010 .
  56. ^ «Особые критерии», приложение к докладной записке от RW Reach, «Встреча X3-2 - 14 и 15 сентября», 18 сентября 1961 г.
  57. ^ Марешаль, R. (1967-12-22), ISO / TC 97 - Компьютеры и обработки информации: Принятие проекта Рекомендации ISO No. 1052
  58. ^ Консорциум Unicode (2006-10-27). «Глава 13: Особые области и символы формата» (PDF) . В Аллене, Джули Д. (ред.). Стандарт Unicode, версия 5.0 . Река Аппер-Сэдл, Нью-Джерси, США: Addison-Wesley Professional . п. 314. ISBN  978-0-321-48091-0. Проверено 13 марта 2015 .
  59. ^ "utf-8 (7) - страница руководства Linux" . Man7.org. 2014-02-26. Архивировано 22 апреля 2014 года . Проверено 21 апреля 2014 .

дальнейшее чтение

  • Бемер, Роберт Уильям (1960). «Предложение о совместимости кодов символов». Коммуникации ACM . 3 (2): 71–72. DOI : 10.1145 / 366959.366961 . S2CID  9591147 .
  • Бемер, Роберт Уильям (2003-05-23). «Вавилон кодов до ASCII: Обзор наборов кодированных символов 1960 года: причины для ASCII» . Архивировано из оригинала на 2013-10-17 . Источник 2016-05-09 , из:
    • Бемер, Роберт Уильям (декабрь 1960). «Обзор кодированного представления символов». Коммуникации ACM . 3 (12): 639–641. DOI : 10.1145 / 367487.367493 . S2CID  21403172 .
    • Смит, HJ; Уильямс, ФА (декабрь 1960 г.). «Обзор кодов перфокарт» . Коммуникации ACM . 3 (12): 642. DOI : 10,1145 / 367487,367491 .
  • Американский национальный стандартный код для обмена информацией . Американский национальный институт стандартов . 1977 г.
  • Робинсон, GS; Каргилл, К. (1996). «История и влияние компьютерных стандартов». Компьютер . 29 (10): 79–85. DOI : 10.1109 / 2.539725 .
  • Маллендор, Ральф Элвин (1964) [1963]. Птак, Джон Ф. (ред.). «На раннем этапе развития ASCII - История ASCII» . JF Ptak Science Books (опубликовано в марте 2012 г.). Архивировано 26 мая 2016 года . Проверено 26 мая 2016 .

внешняя ссылка

  • «C0 Controls and Basic Latin - Range: 0000–007F» (PDF) . Стандарт Unicode 8.0 . Unicode, Inc., 2015 [1991]. Архивировано (PDF) из оригинала 26 мая 2016 года . Проверено 26 мая 2016 .
  • Фишер, Эрик. «Эволюция кодов символов, 1874–1968». CiteSeerX  10.1.1.96.678 . Cite journal requires |journal= (help) [1]