Encoding.GetPreamble メソッド

ファイルの作成に使用されたエンコーディングを判断するために、ストリームの先頭で使用されるバイトのセットを返します。これには、Unicode バイト順マークを含めることができます。

Public Overridable Function GetPreamble() As Byte()
[C#]
public virtual byte[] GetPreamble();
[C++]
public: virtual unsigned char GetPreamble()  __gc[];
[JScript]
public function GetPreamble() : Byte[];

戻り値

通常、バイト順マークを構成している、ストリームの先頭にあるバイト。

解説

先頭には、Unicode バイト順マーク (適切なエンコーディングで書き込まれた U+FEFF) やその他の種類の識別マークを使用できます。このメソッドは空のバイト配列を返すことができます。

使用例

 
Imports System
Imports System.Text

Namespace GetPreambleExample
   Class GetPreambleExampleClass
      Shared Sub Main()
         Dim [unicode] As Encoding = Encoding.Unicode

         ' Get the preamble for the Unicode encoder. 
         ' In this case the preamble contains the byte order mark (BOM).
         Dim preamble As Byte() = [unicode].GetPreamble()

         ' Make sure a preamble was returned 
         ' and is large enough to contain a BOM.
         If preamble.Length >= 2 Then
            If preamble(0) = &HFE And preamble(1) = &HFF Then
               Console.WriteLine("The Unicode encoder is encoding in big-endian order.")
            Else
               If preamble(0) = &HFF And preamble(1) = &HFE Then
                  Console.WriteLine("The Unicode encoder is encoding in little-endian order.")
               End If
            End If
         End If
      End Sub
   End Class
End Namespace

[C#] 
using System;
using System.Text;

namespace GetPreambleExample
{
   class GetPreambleExampleClass
   {
      static void Main()
      {
         Encoding unicode = Encoding.Unicode;

         // Get the preamble for the Unicode encoder. 
         // In this case the preamble contains the byte order mark (BOM).
         byte[] preamble = unicode.GetPreamble();

         // Make sure a preamble was returned 
         // and is large enough to containa BOM.
         if(preamble.Length >= 2)
         {
            if(preamble[0] == 0xFE && preamble[1] == 0xFF)
            {
               Console.WriteLine("The Unicode encoder is encoding in big-endian order.");
            }
            else if(preamble[0] == 0xFF && preamble[1] == 0xFE)
            {
               Console.WriteLine("The Unicode encoder is encoding in little-endian order.");
            }
         }
      }
   }
}

[C++] 
#using <mscorlib.dll>
using namespace System;
using namespace System::Text;

int main() 
{
   Encoding * unicode = Encoding::Unicode;

   // Get the preamble for the Unicode encoder. 
   // In this case the preamblecontains the Byte order mark (BOM).
   Byte preamble[] = unicode -> GetPreamble();

   // Make sure a preamble was returned 
   // and is large enough to containa BOM.
   if (preamble -> Length >= 2) 
   {
      // if (preamble->Item[0] == 0xFE && preamble->Item[1] == 0xFF) 
      if (preamble[0] == 0xFE && preamble[1] == 0xFF) 
      {
         Console::WriteLine(S"The Unicode encoder is encoding in big-endian order.");
      } 
      // else if (preamble->Item[0] == 0xFF && preamble->Item[1] == 0xFE) 
      else if (preamble[0] == 0xFF && preamble[1] == 0xFE) 
      {
         Console::WriteLine(S"The Unicode encoder is encoding in little-endian order.");
      }
   }
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard

参照

Encoding クラス | Encoding メンバ | System.Text 名前空間