CharacterSet の関係は次のとおりです:
http://msdn.microsoft.com/en-us/library/ms709353(VS.85).aspx
と ascii エンコーディング:
http://msdn.microsoft.com/en-us/library /system.text.asciiencoding.getbytes(VS.71).aspx
5 に答える
ANSI は、現在の Windows ANSI コード ページであり、Encoding.Default に相当します。
OEM は、コンソール アプリケーションで通常使用される現在の OEM コード ページです。
次を使用してこれを取得できます。
Encoding.GetEncoding(CultureInfo.CurrentCulture.TextInfo.OEMCodePage)
コンソール アプリケーションでは、OEM エンコーディングも使用できます。
Console.OutputEncoding
これは本当に、本当に古いです。ODBC は、Windows が MS-DOS から引き継がれ始めた石器時代にさかのぼります。当時、多くのテキストは、Microsoft によって「OEM 文字セット」と名付けられた元の IBM-PC 文字セットでエンコードされていました。標準の IBM-PC セットには、上半分のコード 0x80-0xff に、いくつかのアクセント付き文字と疑似グラフィックス グリフが含まれていました。
英語以外の言語でのテキスト出力には制限が多すぎるため、Microsoft は特定の言語グループに適した文字グリフの範囲であるコード ページの使用を開始しました。アメリカ英語の文字セットは ANSI によって標準化され、そのラベルは OEM 以外のコード ページに (誤って) 付けられるようになりました。
OEM 文字セットでテキストをエンコードする人はもういません。少なくとも 10 年前にはドードーのようになりました。ここでの適切な設定は ANSI です。また、テキストのエンコードに使用されるコード ページがシステムのデフォルトのコード ページと一致することを常に確認しておいてください。それもドドー、ユニコードで解決しました。
私の理解では、 CharacterSet=ANSI はEncoding.Defaultと同等です。その場合、OEM は ASCIIEncoding である可能性があります。
ただし、ANSI はシステムの ANSI コード ページを使用するため、異なるコード ページのコンピューターから同じファイルにアクセスすると、非互換性が生じる可能性があります。
あなたの質問への簡単な答えは、直接的な関係はありません。
より長いバージョン:
CharacterSet
「Schema.ini」ファイルの場合は、 または のいずれANSI
かOEM
です。
ANSI と ASCII は別のものを指します。
ここで詳細を読むことができます:
ASCII と ANSI 文字を理解する
ASCII vs ANSI エンコーディング by Alex Hoffman
2つを切り替えるために、独自の参照をコンパイルしました。
Windows コード ページ 名前 System.Text.Encoding schema.ini CharacterSet 20127 アスキー (米国) アスキー 20127 1252 ANSI Latin I デフォルト ANSI 65001 UTF-8 UTF8 65001 1200 UTF-16 LE ユニコード ユニコード 1201 UTF-16 BE BigEndianUnicode 1201