War es hilfreich?

Lösung

ANSI ist die aktuelle Windows-ANSI-Codepage, das entspricht Encoding.Default.

OEM ist die aktuelle OEM-Codepage der Regel von Konsolenanwendungen verwendet wird.

Sie können erhalten diese mit:

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

In einer Konsolenanwendung, die OEM-Codierung wird ebenfalls verfügbar sein mit

Console.OutputEncoding

Andere Tipps

Das ist wirklich, wirklich sehr alt. ODBC stammt aus der Steinzeit, zurück, wenn Windows von MS-DOS zu übernehmen beginnt. Damals wurde viele Text noch in dem ursprünglichen IBM-PC-Zeichensatz codiert, den „OEM-Zeichensatz“ von Microsoft genannt. Das Standard-IBM-PC-Set hatte einige akzentuierte Zeichen und Pseudo-Grafiken Glyphen in der oberen Hälfte, Codes 0x80-0xff.

Auch in nicht-englischen Sprachen für die Textausgabe beschränkt, Microsoft mit Codeseite gestartet, Bereiche von Zeichen-Glyphen für eine bestimmte Sprachgruppe geeignet. Der amerikanische Englisch Satz von Zeichen von ANSI standardisiert wurde, wird das Etikett nun angebracht (fälschlicherweise) eine Nicht-OEM-Codepage.

Niemand codiert Text in der mehr gesetzt OEM Charakter, es vor den Weg des Dodo mindestens 10 Jahre vergingen. Die richtige Einstellung ist ANSI. Und halten Sie Ihre Finger hinter dem Rücken gekreuzt, die die Codepage verwendet, um den Text zu kodieren Ihres Systems Seite Standard-Code übereinstimmt. Das ist dodo auch Unicode gelöst es.

Die kurze Antwort auf Ihre Frage, gibt es keine direkte Beziehung.

Die längere Version:
CharacterSet für die „Schema.ini“ Datei kann entweder ANSI oder OEM sein.
ANSI und ASCII beziehen sich auf andere Sache.

Sie können mehr davon lesen Sie hier:
Verständnis ASCII und ANSI-Zeichen
ASCII vs ANSI Encoding von Alex Hoffman

Von meinem Verständnis, CharacterSet = ANSI entspricht Encoding.Default . OEM könnte ASCIIEncoding dann.

Allerdings ANSI verwendet die System ANSI-Codepage, so Inkompatibilitäten auftreten kann, wenn die gleiche Datei von Computern mit unterschiedlichen Codeseite zugegriffen wird.

Ich habe meine eigene Referenz zusammengestellt, um zwischen den beiden zu wechseln:

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top