次の方法で共有


UTF8Encoding.GetPreamble メソッド

このインスタンスのコンストラクタがバイト順マークのサポートを要求した場合は、UTF-8 形式でエンコードされた Unicode バイト順マークを返します。

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

戻り値

このインスタンスのコンストラクタが UTF-8 識別子の生成を要求した場合は、16 進数 0xEF、0xBB、0xBF としてエンコードされた Unicode バイト順マーク (U+FEFF) を格納しているバイト配列。それ以外の場合は、長さ 0 のバイト配列。

解説

バイト順マークは、エンコードされたバイト シーケンスの先頭に連結すると、 System.IO.StreamReader のようなクラスで後続のバイトが UTF-8 形式でエンコードされているかどうかを確認できるようになります。

このインスタンスのコンストラクタが、バイト順マークのサポートを要求した場合は、この戻り値を UTF-8 でエンコードされたバイト シーケンスの先頭に連結します。

使用例

[Visual Basic, C#, C++] 作成時にバイト順マークのサポートを要求した UTF8Encoding のインスタンスの、UTF-8 形式でエンコードされた Unicode バイト順マークを、 GetPreamble メソッドを使用して返す方法を次の例に示します。 UTF8Encoding の既定のコンストラクタにはプリアンブルは提供されていません。

 
Imports System
Imports System.Text

Class UTF8EncodingExample
    
    Public Shared Sub Main()
        ' The default constructor does not provide a preamble.
        Dim UTF8NoPreamble As New UTF8Encoding()
        Dim UTF8WithPreamble As New UTF8Encoding(True)
        
        Dim preamble() As Byte
        
        preamble = UTF8NoPreamble.GetPreamble()
        Console.WriteLine("UTF8NoPreamble")
        Console.WriteLine(" preamble length: {0}", preamble.Length)
        Console.Write(" preamble: ")
        ShowArray(preamble)
        
        preamble = UTF8WithPreamble.GetPreamble()
        Console.WriteLine("UTF8WithPreamble")
        Console.WriteLine(" preamble length: {0}", preamble.Length)
        Console.Write(" preamble: ")
        ShowArray(preamble)
    End Sub 'Main
    
    
    Public Shared Sub ShowArray(theArray As Array)
        Dim o As Object
        For Each o In  theArray
            Console.Write("[{0}]", o)
        Next o
        Console.WriteLine()
    End Sub 'ShowArray
End Class 'UTF8EncodingExample

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

class UTF8EncodingExample {
    public static void Main() {
        // The default constructor does not provide a preamble.
        UTF8Encoding UTF8NoPreamble = new UTF8Encoding();
        UTF8Encoding UTF8WithPreamble = new UTF8Encoding(true);

        Byte[] preamble;

        preamble = UTF8NoPreamble.GetPreamble();
        Console.WriteLine("UTF8NoPreamble");
        Console.WriteLine(" preamble length: {0}", preamble.Length);
        Console.Write(" preamble: ");
        ShowArray(preamble);

        preamble = UTF8WithPreamble.GetPreamble();
        Console.WriteLine("UTF8WithPreamble");
        Console.WriteLine(" preamble length: {0}", preamble.Length);
        Console.Write(" preamble: ");
        ShowArray(preamble);
    }

    public static void ShowArray(Array theArray) {
        foreach (Object o in theArray) {
            Console.Write("[{0}]", o);
        }
        Console.WriteLine();
    }
}

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

void ShowArray(Array * theArray)
{
   IEnumerator* myEnum = theArray->GetEnumerator();
   while (myEnum->MoveNext())
   {
      Object* o = __try_cast<Object*>(myEnum->Current);
      Console::Write(S"[{0}]", o);
   }
   Console::WriteLine();
}

int main()
{
   // The default constructor does not provide a preamble.
   UTF8Encoding* UTF8NoPreamble = new UTF8Encoding();
   UTF8Encoding* UTF8WithPreamble = new UTF8Encoding(true);

   Byte preamble[];

   preamble = UTF8NoPreamble -> GetPreamble();
   Console::WriteLine(S"UTF8NoPreamble");
   Console::WriteLine(S" preamble length: {0}", __box(preamble -> Length));
   Console::Write(S" preamble: ");
   ShowArray(preamble);

   preamble = UTF8WithPreamble -> GetPreamble();
   Console::WriteLine(S"UTF8WithPreamble");
   Console::WriteLine(S" preamble length: {0}", __box(preamble -> Length));
   Console::Write(S" preamble: ");
   ShowArray(preamble);
}

[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

参照

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