Était-ce utile?

La solution

ANSI est la page de code ANSI Windows actuelle, équivalente à Encoding.Default.

OEM est la page de code OEM actuelle généralement utilisée par les applications console.

Vous pouvez l'obtenir en utilisant:

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

Dans une application console, l'encodage OEM sera également disponible avec

.
Console.OutputEncoding

Autres conseils

C'est vraiment très ancien. ODBC date de l'âge de pierre, à l'époque où Windows commençait à prendre le relais de MS-DOS. À l'époque, de nombreux textes étaient encore encodés dans le jeu de caractères IBM-PC d'origine, appelé "Jeu de caractères OEM". par Microsoft. Le jeu IBM-PC standard comportait des caractères accentués et des pseudo-glyphes graphiques dans la moitié supérieure, codes 0x80-0xff.

Trop limité pour la sortie de texte dans des langues autres que l'anglais, Microsoft a commencé à utiliser des pages de code, des plages de glyphes de caractères adaptées à un groupe de langues donné. Le jeu de caractères anglais américain a été normalisé par ANSI. Cette étiquette est désormais attachée (de manière incorrecte) à une page de code non-OEM.

Plus personne n’encode de texte dans le jeu de caractères OEM, il a suivi le même chemin que le dodo il ya au moins 10 ans. Le paramètre approprié ici est ANSI. Et gardez les doigts croisés derrière le dos pour que la page de code utilisée pour coder le texte corresponde à la page de code par défaut de votre système. C'est aussi le dodo, Unicode l'a résolu.

La réponse courte à votre question, il n'y a pas de relation directe.

La version la plus longue:
CharacterSet pour le fichier "Schema.ini". Le fichier peut être ANSI ou OEM .
ANSI et ASCII font référence à autre chose.

Vous pouvez en lire plus ici:
Présentation des caractères ASCII et ANSI
Encodage ASCII vs ANSI par Alex Hoffman

De ma compréhension, CharacterSet = ANSI équivaut à Encoding.Default . OEM pourrait alors être ASCIIEncoding.

Toutefois, ANSI utilise la page de codes ANSI du système. Par conséquent, des incompatibilités peuvent survenir si le même fichier est accessible à partir d'ordinateurs dotés de pages de codes différentes.

J'ai compilé ma propre référence afin de basculer entre les deux:

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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top