На какой стандарт ANSI ссылается Джоэл?

На какой стандарт ANSI ссылается Джоэл?

Я перечитывал классический пост в блоге Джоэла СпольскиАбсолютный минимум, который каждый разработчик программного обеспечения обязательно должен знать о Unicode и наборах символов (никаких оправданий!)и заметил этот отрывок:

В конце концов, этот бесплатный OEM-доступ был узаконен встандарт ANSI (выделено мной).В стандарте ANSI все согласились, что делать ниже 128, что было почти то же самое, что и ASCII, но было много разных способов обрабатывать символы от 128 и выше, в зависимости от того, где вы жили. Эти разные системы называлиськодовые страницы.

На какой стандарт ANSI ссылается этот текст? Конечно, Американский национальный институт стандартов опубликовал ряд стандартов (в конце концов, это то, что они на самом деледелать),но я не смог понять, какой именно.

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

ВикипедияКодовая страницастатьяупоминает стандарт IBM и отмечает, что IANA ведет реестр сопоставлений кодовых страниц, но, очевидно, ни один из них не является ANSI.

Насколько я понимаю, ANSI не стандартизировал ни один современный 8-битный набор символов, и что «ANSI» в этом контексте, как правило, относится к ныне заброшенной запутанной терминологии Microsoft (где «ANSI» в свое время, по-видимому, использовалось для обозначения чего-то вроде текущей выбранной кодовой страницы).

Есть ли какой-то стандарт, который я упускаю из виду? Или это просто (ух ты!) ошибка в блоге Джоэла?

решение1

Это головоломка, поэтому давайте соберем все известные факты. Мы ищем:

  • Стандарт ANSI
  • О наборах символов
  • Который определил первые 128 кодовых точек
  • И послужил основой для кодовых страниц и всех последующих стандартов наборов символов.

Результат для меня только один - Стандарт ASCII. Я считаю, что это был первый стандарт ANSI, определяющий первые 128 кодовых точек, и на самом деле он также последний.

Хотя ASCII развивался в деталях позже, его основная разработка началась в 1963 году. Этот стандарт был разработан американским отделением Международной организации по стандартизации (ISO), которым является ANSI. Поскольку этот стандарт опустил ссылку на неамериканские символы, и поскольку последующие кодовые страницы, которые пытались ответить на этот вопрос, были настоящим неорганизованным беспорядком, будучи в состоянии договориться только по части ASCII, работа по стандартизации была взята на себя самой международной организацией ISO.

С исторической точки зрения, Стандарт ИСО/МЭК 8859 появился между ASCII и кодовыми страницами, но это был не стандарт ANSI, а разработанный ISO.

«Страницы кода ANSI» — неправильное название Кодовые страницы Windowsкоторые были созданы Microsoft, а не ANSI. Один из вариантов был кодовой страницей Windows-1252, который позже стал известен как ИСО/МЭК 8859-1.

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

решение2

В соответствии сих страница в википедииУправляющие символы C0 и C1 определены в ANSI x3.4.

К ним относятся управляющие последовательности для расширенного форматирования текста, которые используютсяИСО 2022иИСО 8859для разрешения многобайтовых международных наборов символов.

Например, ESC $ @ и ESC $ B переключают на разные японские 2-байтовые кодировки, а ESC ( B переключает обратно на US-ASCII. Это могут быть стандарты ISO (или ECMA), но они используют управляющие коды ANSI, так что это, вероятно, частично неправильное название.

решение3

Без участия Джоэла мы не можем знать наверняка, но, основываясь на других попытках ответить здесь и недостатках, которые я в них замечаю, позвольте мне высказать то, что я считаю очевидным и простым предположением:

На самом деле стандарта ANSI здесь нет, и Джоэл умалчивает об этом.

Что именно здесь суммируется и, возможно, смешивается, определенно менее определенно, но я предполагаю, что он говорит о разработке кодовых страниц Windows, которые некоторое время назывались "кодовыми страницами ANSI" компанией Microsoft, хотя никакой ощутимой связи с Американским национальным институтом стандартов никогда не было, возможно, за исключением в конечном счете безуспешной попытки стандартизировать кодовую страницу Windows 1252 как "расширенный ASCII" с различными акцентированными символами для некоторых западноевропейских языков и символами, полезными для набора текста и простых математических выражений. Согласно некоторым источникам, это то, что в конечном итоге привело кИСО/МЭК 8859-1и в конечном итоге большая семьяИСО 8859стандарты для 8-битных наборов символов для различных регионов (см. такжеЕСМА-94).

Для справки, ASA и затемКомитет ANSI X3отвечал за стандарт ASCII (ASA X3.4, затем ANSI X3.4, затем ISO 646), а также за стандарт X3.64 для последовательностей управления экраном ASCII для дисплейных терминалов. Известные публикации этого комитета в конце 1980-х годов включают предложение по языку C и нечто под названием «расширенный Паскаль», а также аппаратный интерфейс SCSI, но я не смог найти ничего, связанного с наборами символов этого периода.

решение4

https://en.wikipedia.org/wiki/ASCII#История

Согласно этому списку, первым стандартом ANSI, определяющим ASCII, был ANSI X3.4-1977.

Связанный контент