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