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

Решение

ANSI - это текущая кодовая страница Windows ANSI, эквивалентная Encoding.Default.

OEM - это текущая кодовая страница OEM, обычно используемая консольными приложениями.

Вы можете получить это, используя:

Encoding.GetEncoding(CultureInfo.CurrentCulture.TextInfo.OEMCodePage)

В консольном приложении OEM-кодировка также будет доступна с помощью

Console.OutputEncoding

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

Это действительно очень древнее. ODBC восходит к каменному веку, когда Windows начала переходить от MS-DOS. Тогда много текста все еще было закодировано в исходном наборе символов IBM-PC, названном «Набор символов OEM». Microsoft. Стандартный набор IBM-PC имел несколько акцентированных символов и псевдографических символов в верхней половине, коды 0x80-0xff.

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

Никто больше не кодирует текст в наборе символов OEM, он прошел путь додо по крайней мере 10 лет назад. Правильная настройка здесь - ANSI. И скрестив пальцы за спиной, кодовая страница, используемая для кодирования текста, соответствует кодовой странице вашей системы по умолчанию. Это тоже додо, Юникод решил это.

Короткий ответ на ваш вопрос, прямой связи нет.

Более длинная версия:
CharacterSet для " Schema.ini " файл может быть ANSI или OEM .
ANSI и ASCII относятся к разным вещам.

Вы можете прочитать об этом здесь:
Понимание символов ASCII и ANSI
Кодировка ASCII и ANSI Алекса Хоффмана

Насколько я понимаю, CharacterSet = ANSI эквивалентен Encoding.Default . OEM может быть ASCIIEncoding тогда.

Однако ANSI использует системную кодовую страницу ANSI, поэтому несовместимости могут возникнуть, если к одному и тому же файлу обращаются с компьютеров с разными кодовыми страницами.

Я собрал собственную ссылку для переключения между ними:

Windows code page       Name            System.Text.Encoding    schema.ini CharacterSet
20127                   ASCII (US)      ASCII                   20127
1252                    ANSI Latin I    Default                 ANSI
65001                   UTF-8           UTF8                    65001
1200                    UTF-16 LE       Unicode                 Unicode
1201                    UTF-16 BE       BigEndianUnicode        1201
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top