Beziehung zwischen .NET Encoding und Characterset
-
06-07-2019 - |
Frage
Was ist Beziehung zwischen CharacterSet hier:
http://msdn.microsoft.com/en-us /library/ms709353(VS.85).aspx
und ASCII-Kodierung hier:
http://msdn.microsoft .com / de-de / library / system.text.asciiencoding.getbytes (VS.71) aspx
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