Вопрос

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

Это было полезно?

Решение

Кодировка ANSI - это слегка общий термин, используемый для обозначения стандартной кодовой страницы в системе, обычно Windows.Это более правильно называть Окна-1252 на Западе / в СШАсистемы.(Это может представлять определенные другие Кодовые страницы Windows в других системах.) По сути, это расширение набора символов ASCII в том смысле, что он включает в себя все символы ASCII с дополнительными 128-символьными кодами.Это различие связано с тем фактом, что кодировка "ANSI" является 8-битной, а не 7-битной, как ASCII (ASCII в настоящее время почти всегда кодируется как 8-битные байты с MSB установлено в 0).Смотрите статью для объяснения того, почему эта кодировка обычно называется ANSI.

Название "ANSI" является неправильным, поскольку оно не соответствует ни одному реальному стандарту ANSI, но название прижилось.ANSI - это не то же самое, что UTF-8.

Другие советы

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

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

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

Строго говоря, не существует такого понятия, как кодировка ANSI.В разговорной речи термин ANSI используется для обозначения нескольких различных кодировок:

  1. ISO 8859-1
  2. Windows CP1252
  3. Текущая системная кодировка на компьютере с Windows (в терминологии Win32 API).

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

ASCII - код просто определяет 7-битную кодовую страницу из 128 символов.ANSI расширяет это значение до 8 бит, и существует несколько различных кодовых страниц для символов от 128 до 255.

Обозначение ANSI неверно, потому что на самом деле это норма ISO / IEC 8859, которая определяет эти кодовые страницы.Видишь ISO/IEC 8859 для справки.Существует 16 кодовых страниц от ISO/IEC 8859-1 до ISO/IEC 8859-16.

Окна-1252 снова основан на стандарте ISO/IEC 8859-1 с некоторыми изменениями, главным образом в диапазоне Набор элементов управления C1 в диапазоне от 128 до 159.Википедия утверждает, что Windows-1252 также обозначается как ISO-8859-1 со вторым дефисом между ISO и 8859.(Невероятно!Кто делает что-то подобное?!?)

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

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

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

На всякий случай, если ваш КОМПЬЮТЕР не является "западным" ПК и вы не знаете, какая кодовая страница используется, вы можете взглянуть на эту страницу: Ссылка на API поддержки национального языка (NLS)

[Корпорация Майкрософт удалила эту ссылку, оформите ее в веб-архив Ссылка на API поддержки национального языка (NLS)

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

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" ссылался на псевдо-управляющие коды VT-100, используемые в DOS через драйвер ANSI.SYS для изменения потока потокового текста....Вероятно, не то, что вы имеете в виду, но если это так, смотрите http://en.wikipedia.org/wiki/ANSI_escape_code

АНСИ (он же Windows-1252 /WinLatin1) - это кодировка символов латинского алфавита, довольно похожая на ISO-8859-1.Возможно, вы захотите взглянуть на это в Википедии.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top