Что такое ansi. Что такое ANSI-люмен (лм, lm), единица измерения? Значение. Почему вместо русских букв в консольном приложении выводится мусор

ANSI это стандарт отображения символов, разработанный American National Standards Institute (код1251). Стандарт ANSI использует только один байт, чтобы представить каждый знак, соответственно ограничен максимумом 256 знаками, в том числе и пунктуации. Коды от 32 до 126 совпадают со стандартом ASCII. Стандарт ASCII (код 688) использовался в DOS, ANSI используется в Windows.

Литература

    Архангельский А.Я. Программирование в С++ Builder6. Изд. БИНОМ, 2004.

    Архангельский А.Я. С++ Builder6. Справочное пособие. Москва, Изд. БИНОМ, 2004.

    Киммел П. BorlandC++5 «BHV-Санкт-Петербург, 2001г.

    Климова Л.М. СИ++ Практическое программирование. Решение типовых задач. «КУДИЦ-ОБРАЗ», М.2001.

    Культин Н. С/С++ в задачах и примерах. Санкт-Петербург «БХВ-Петербург», 2003.

    Павловская Т.А. C/C++ Программирование на языке высокого уровня. Питер, Москва-Санкт-Петербург-… 2005г.

    Павловская Т.А., Щупак Ю.А. С++. Объектно-ориентированное программирование. Практикум. СПб., Питер, 2005.

    Подбельский В.В. Язык С++ Финансы и статистика, Москва, 2003г.

    Поляков А.Ю., Брусенцев В.А. Методы и алгоритмы компьютерной графики в примерах на VisualС++. СПб БХИ-Петербург, 2003г.

    Савитч У. Язык С++ курс объектно-ориентированного программирования. Издательский дом Вильямс. Москва-Санкт-Петербург-Киев, 2001г.

    Уэллин С. Как не надо программировать на С++. «Питер». Москва-Санкт-Петербург-Нижний Новгород-Воронеж-Новосибирск-Ростов-на-Дону-Екатеринбург-Самара-Киев-Харьков-Минск, 2004.

    Шилдт Г. Полный справочник по С++. Изд. Дом «Вильямс» Москва-Санкт-Перербург-Киев, 2003.

    Шилдт Г. Самоучитель С/С++ . Санкт-Петербург, «БХВ-Петербург», 2004.

    Шилдт Г. Справочник программиста по С/С++ Изд. Дом «Вильямс» Москва-Санкт-Перербург-Киев, 2003.

    Шиманович.Л. С/С++ в примерах и задачах. Минск, Новое знание, 2004.

    Штерн В. Основы С++. Методы программной инженерии. Изд. Лори.

Почему вместо русских букв в консольном приложении выводится мусор?

и правильно! Текст программы Вы набирали в родном редакторе Visual Studio, используя кодовую страницу 1251, а вывод текста в консольном приложении идет с использованием кодовой страницы 866. Что же делать с этим безобразием? Как известно из любого безвыходного положенния есть по крайней мере 3 выхода. Рассмотрим их по-порядку.

    1. Выход 1

Набрать текст программы в редакторе любого консольного файл-менеджера.

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

    1. Выход 2

Если Вы начали писать консольную программу с нуля, он может Вам подойти. Перепишем наш маленький шедевр вот так:

#include "stdafx.h"

#include "windows.h"

int main(int argc, char* argv)

char s="Привет всем!";

printf("%s\n", s);

Ключевое слово здесь CharToOem - именно эта функция и преобразует нашу строку в нужную кодовую страницу. С выводом у нашей программы теперь все нормально.

Но встает следующий вопрос - что делать, если надо перекомпилировать в консольное Windows-приложение Вашу старую DOS-программу на 100000 строк, написанную на Borland C++ 3.1, в которой такая ситуация встречается в каждой второй строке. А ведь придется еще подгонять ее под MS-компилятор, да и пару кусочков кода хочется соптимизировать...

Здесь пожалуй имеет смысл применить ход конем, в смысле

ANSI-люмен (лм, lm), единица измерения - это...

ANSI-люмен – единица измерения освещенности в мультимедийных проекторах, создаваемой лампой при просвечивании через линзу. "Lumen" по-латыни означает "свет", ANSI расшифровывается как "American National Standards Institute". Это стандарт для измерения светового потока, используемый для сравнения проекторов.

Этот параметр был введен в 1992 году Американским институтом Национальных Стандартов в качестве единицы, характеризующей среднюю величину светового потока на контрольном экране с диагональю 40" при минимальном фокусном расстоянии вариообъектива проектора.

Измерение проводится на полностью белой картинке (full white), освещенность экрана измеряется с помощью люксметра в люксах (Lux) в 9 контрольных точках экрана. Значение светового потока рассчитывается как среднее значение этих 9 измерений - умножаются на его площадь и усредняются.

Результирующая световая энергия на экране на каждый квадратный метр указывается в люксах и находится по формуле: люкс = люмен /м². Но измерение люменов/люксов варьируется в зависимости от окружения, настройки прибора и проецируемого изображения, поэтому сегодня в качестве стандарта всеобщее признание получила процедура определения полезного светового потока в ANSI-люменах.

Такое измерение позволяет оценить равномерности распределения светового потока по поверхности экрана. Снижение яркости изображения по его краям называют "Hot Spot" или световым пятном. Равномерность распределения светового потока рассчитывается как соотношение наименьшего и наибольшего из полученных измерений освещенности. В хороших проекторах это значение не падает ниже 70%.

Данная методика точно описывает порядок проведения измерений. При строго определенных условиях окружающей среды и настройках прибора проецируемое на экран изображение делится на девять равных частей, и в каждой из них определяется световая энергия. Среднее значение, полученное из всех девяти замеров и умноженное на площадь экрана в м², дает значение ANSI-люмена.

Интересно, что световой поток, в отличие от освещенности (измеряемой в ANSI-люменах), не зависит от проецируемой площади. К тому же, указанные производителем значения в ANSI-люменах часто опираются на эталонные максимальные настройки, которые редко используются на практике.

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

Значения ANSI-люменов у цифровых проекторов могут достигать от 900 ANSI-люменов у более старых моделей до 4700 ANSI-люменов у современных мощных приборов. Хороший цифровой проектор для домашнего кинотеатра должен иметь порядка 2000 ANSI-люменов.

В основном «ANSI» относится к устаревшей кодовой странице в Windows. См. Также по этой теме. Первые 127 символов идентичны ASCII на большинстве кодовых страниц, однако верхние символы различаются.

Однако ANSI автоматически не означает CP1252 или Latin 1.

Несмотря на всю путаницу, вы должны просто избегать таких проблем в настоящее время и использовать Unicode.

Что такое формат кодировки ANSI? Это системный формат по умолчанию? Чем он отличается от ASCII?

Когда-то Microsoft, как и все остальные, использовала 7-битные наборы символов, и они придумали свои собственные, когда они им подошли, хотя они сохранили ASCII в качестве основного подмножества. Затем они поняли, что мир перешел к 8-битным кодировкам и что существуют международные стандарты, такие как семейство ISO-8859. В те дни, если вы хотели получить международный стандарт, и вы жили в США, вы купили его у Американского национального института стандартов ANSI, который переиздал международные стандарты со своим собственным брендингом и цифрами (это потому, что правительство США хочет соответствие американским стандартам, а не международным стандартам). Итак, копия Microsoft ISO-8859 сказала «ANSI» на обложке. И поскольку Microsoft в те дни не очень привыкла к стандартам, они не понимали, что ANSI опубликовала множество других стандартов. Поэтому они ссылались на стандарты семейства ISO-8859 (и варианты, которые они изобрели, потому что в те дни они не понимали стандартов) по названию на обложке «ANSI», и он нашел свой путь в Microsoft пользовательскую документацию и, следовательно, в сообщество пользователей. Это было около 30 лет назад, но вы все еще иногда слышите это имя сегодня.

Или вы можете запросить свой реестр:

C:\>reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage /f ACP HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage ACP REG_SZ 1252 End of search: 1 match(es) found. C:\>

При использовании однобайтовых символов формат ASCII определяет первые 127 символов. Расширенные символы из 128-255 определяются различными кодами ANSI, чтобы обеспечить ограниченную поддержку других языков. Чтобы понять кодировку ANSI, вам нужно знать, какую кодовую страницу она использует.

Технически ANSI должен быть таким же, как US-ASCII. Он относится к стандарту ANSI X3.4, который является просто утвержденной версией ASCII организации ANSI . Использование символов с верхним битом не определено в ASCII / ANSI, так как это 7-разрядный набор символов.

Однако годы неправильного использования термина DOS и впоследствии сообщества Windows оставили свое практическое значение как «системную кодовую страницу какой бы то ни было машины». Системная кодовая страница также иногда известна как «mbcs», так как в системах Восточной Азии, которая может быть кодировкой с несколькими байтами на символ. Некоторые кодовые страницы могут даже использовать байты с верхним битом в качестве байтов байтов в многобайтовой последовательности, поэтому он даже не является строго совместимым с простым ASCII ... но даже тогда он по-прежнему называется ANSI.

В настройках по умолчанию в США и Западной Европе «ANSI» сопоставляется с кодовой страницей Windows 1252. Это не то же самое, что и ISO-8859-1 (хотя это довольно похоже). На других машинах это могло быть что угодно. Это делает ANSI совершенно бесполезным в качестве внешнего идентификатора кодирования.

Я помню, когда текст ANSI ссылался на escape-коды псевдо-VT-100, используемые в DOS через драйвер ANSI.SYS, чтобы изменить поток потокового текста.... Вероятно, это не то, о чем вы говорите, но если он видит

Америка́нский национа́льный институ́т станда́ртов (англ. A merican n ational s tandards i nstitute , ANSI) - объединение американских промышленных и деловых групп, разрабатывающее торговые и коммуникационные стандарты . Входит в организации ISO и IEC , представляя там интересы США .

История

Изначально ANSI была образована в 1918 году, когда пять инженерных обществ и три правительственных учреждения основали «Американский комитет по инженерным стандартам» (AESC - англ. American Engineering Standards Committee ). В 1928 году комитет стал называться "Американской ассоциацией стандартов (ASA - англ. American Standards Association ). В 1966 году ASA была реорганизована и стала «Институтом стандартов Соединенных Штатов Америки» (USASI - англ. United States of America Standards Institute ). Нынешнее название было принято в 1969 году.

До 1918 года существовало пять инженерных обществ, участвовавших в разработке технических стандартов:

  • Американский институт инженеров-электриков (American Institute of Electrical Engineers - AIEE, сейчас IEEE)
  • Американское общество инженеров-механиков (American Society of Mechanical Engineers - ASME)
  • Американское общество гражданских инженеров (American Society of Civil Engineers - ASCE)
  • Американский институт горных инженеров (American Institute of Mining Engineers - AIME, в настоящее время Американский институт горных, металлургических и нефтяных инженеров)
  • Американское общество по испытаниям и материалам (сейчас ASTM)

В 1916 году Американский институт инженеров-электриков (ныне IEEE) выступил с инициативой объединения усилий этих организаций для создания независимого национального органа для координации разработки стандартов, согласования и утверждения национальных стандартов. Вышеуказанные пять организаций стали основными членами Объединённого инженерного общества (United Engineering Society - UES), впоследствии для участия в нём в качестве учредителей были приглашены военное министерство США, военно-морской флот (объединенный в 1947 году, чтобы стать министерством обороны США) и коммерции .

В 1931 году организация (переименованная в ASA в 1928 году) вошла в состав Национального комитета США в Международной электротехнической комиссии (МЭК) , которая был образован в 1904 году для разработки стандартов в области электротехники и электроники

Члены

Членами ANSI являются государственные органы, организации, академические и международные организации, а также частные лица. В общей сложности Институт представляет интересы более 270 000 компаний и организаций и 30 миллионов специалистов по всему миру /

Деятельность

Хотя сама ANSI не разрабатывает стандарты, Институт осуществляет надзор за разработкой и использованием стандартов путем аккредитации процедур организаций, разрабатывающих стандарты. Аккредитация ANSI означает, что процедуры, используемые организациями, разрабатывающими стандарты, соответствуют требованиям Института в отношении открытости, сбалансированности, консенсуса и надлежащей правовой процедуры.

ANSI также определяет конкретные стандарты как Американские национальные стандарты, или ANS, когда Институт определяет, что стандарты были разработаны в справедливой, доступной и отвечающей требованиям различных заинтересованных сторон среде.

Международная деятельность

Помимо деятельности в области стандартизации в США, ANSI способствует международному использованию стандартов США, отстаивает политическую и техническую позицию США в международных и региональных организациях по стандартизации и поощряет принятие международных стандартов в качестве национальных стандартов.

Институт является официальным представителем США в двух основных международных организациях по стандартизации, Международная организация по стандартизации (ИСО), в качестве одного из основателей, и Международная электротехническая комиссия (IEC) через Национальный комитет США (USNC). ANSI участвует почти во всей технической программе ISO и IEC и управляет многими ключевыми комитетами и подгруппами. Во многих случаях стандарты США передаются в ИСО и МЭК через ANSI или USNC, где они полностью или частично принимаются в качестве международных стандартов.

Принятие стандартов ISO и IEC в качестве американских стандартов возросло с 0,2 % в 1986 году до 15,5 % в мае 2012 года.

Направления стандартизации

Институт управляет девятью группами по стандартизации:

  • Сотрудничество по стандартизации национальной безопасности и безопасности ANSI (HDSSC - Homeland Defense and Security Standardization Collaborative)
  • Группа по стандартам нанотехнологий ANSI (ANSI-NSP - ANSI Nanotechnology Standards Panel)
  • Панель стандартов защиты от кражи ID и ID ID (IDSP - ID Theft Prevention and ID Management Standards Panel)
  • ANSI Координационное сотрудничество по стандартизации энергоэффективности (EESCC - Energy Efficiency Standardization Coordination Collaborative)
  • Сотрудничество по координации стандартов в области ядерной энергии (NESCC- Nuclear Energy Standards Coordination Collaborative)
  • Группа по стандартам электромобилей (EVSP - Electric Vehicles Standards Panel)
  • Сеть ANSI-NAM по химическому регулированию (ANSI-NAM Network on Chemical Regulation)
  • Координационная группа по стандартам на биотопливо (ANSI Biofuels Standards Coordination Panel)
  • Панель стандартов медицинской информации в области здравоохранения (HITSP - Healthcare Information Technology Standards Panel)
  • Американское агентство сертификации в области трубопроводов и механизмов

Каждая из групп занимается выявлением, координацией и согласованием добровольных стандартов, относящихся к этим областям. В 2009 году ANSI и (NIST) создали Координационное сотрудничество по стандартам в области ядерной энергии (NESCC). NESCC - это совместная инициатива по выявлению и удовлетворению текущей потребности в стандартах в ядерной отрасли.

Стандарты

Из принятых институтом стандартов известны:

Вопреки распространённому заблуждению, ANSI не принимал стандарты 8-битных кодовых страниц , хотя и участвовал в разработке кодировки ISO-8859-1 и, возможно, некоторых других.

Примечания

  1. About ANSI
  2. RFC
  3. ANSI:Исторический обзор (неопр.) . ansi.org . Дата обращения 31 октября 2016.
  4. История ANSI
  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то