Foi útil?

Solução

ANSI é a página de código Windows ANSI atual, equivalente a Encoding.Default.

OEM é a página de código OEM atual tipicamente usado por aplicativos de console.

Você pode obter esta usando:

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

Em um aplicativo de console, a codificação OEM também estará disponível usando

Console.OutputEncoding

Outras dicas

Este é muito, muito antiga. datas ODBC a partir da idade da pedra, de volta quando o Windows a partir assumindo o lugar de MS-DOS. Naquela época, os lotes de texto ainda foi codificado no conjunto original de caracteres IBM-PC, chamado de "conjunto de caracteres OEM" pela Microsoft. O conjunto IBM-PC padrão teve alguns caracteres acentuados e glifos pseudo gráficos na metade superior, códigos 0x80-0xff.

Muito limitado para a saída de texto em idiomas diferentes do inglês, a Microsoft começou a usar páginas de código, gamas de glifos de caracteres apropriados para um determinado grupo de idioma. O conjunto de Inglês Americano de caracteres foram padronizados pela ANSI, esse rótulo é agora anexado (incorretamente) a qualquer página de código não-OEM.

Texto Ninguém codifica no conjunto de caracteres OEM mais, ele seguiu o caminho do dodo pelo menos 10 anos atrás. A configuração adequada aqui é ANSI. E mantendo os dedos cruzados atrás das costas que a página de código usada para codificar o texto corresponde página de código padrão do sistema. Que de dodo também, Unicode resolveu.

A curta resposta à sua pergunta, não há nenhuma relação direta.

A versão mais longa:
CharacterSet para o arquivo "Schema.ini" pode ser ANSI ou OEM.
ANSI e ASCII se referir a coisa diferente.

Você pode ler mais aqui:
ASCII Compreensão e Caracteres ANSI
ASCII vs ANSI codificação por Alex Hoffman

No meu entendimento, CharacterSet = ANSI é equivalente a Encoding.Default . OEM pode ser ASCIIEncoding então.

No entanto, ANSI usa a página de código ANSI do sistema, de modo que podem surgir incompatibilidades se o mesmo arquivo é acessado a partir de computadores com diferentes páginas de código.

Eu compilei minha própria referência, a fim de alternar entre os dois:

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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top