UnicodeEncoding.GetPreamble メソッド
アセンブリ: mscorlib (mscorlib.dll 内)

Dim instance As UnicodeEncoding Dim returnValue As Byte() returnValue = instance.GetPreamble
このインスタンスのコンストラクタでバイト順マークを付加するよう指定した場合は、Unicode バイト順マークが格納されたバイト配列。 それ以外の場合は、長さ 0 のバイト配列。

プリアンブルがエンコード済みストリームの前に付加されていると、デコーダによる使用エンコーディング形式の識別に役立ちます。
エンコーダでは、最上位バイトが先頭に配置されるビッグ エンディアン バイト順、または最下位バイトが先頭に配置されるリトル エンディアン バイト順が使用されます。たとえば、Latin の大文字 A (コード ポイント U+0041) は次のように 16 進数でシリアル化されます。
-
ビッグ エンディアン バイト順 : 00 00 00 41
-
リトル エンディアン バイト順 : 41 00 00 00
UnicodeEncoding は、オプションでプリアンブルを提供します。プリアンブルは、エンコーディング プロセスで得られたバイト シーケンスの先頭に付加できるバイトの配列です。プリアンブルにバイト順マーク (コード ポイント U+FEFF) が含まれる場合、デコーダはバイト順および変換形式 (UTF) を判断できます。Unicode バイト順マークは、次のように 16 進数でシリアル化されます。
-
ビッグ エンディアン バイト順 : 00 00 FE FF
-
リトル エンディアン バイト順 : FF FE 00 00
通常、ネイティブなバイト順で Unicode 文字を格納した方が効率的です。たとえば、Intel のコンピュータなど、リトル エンディアンのプラットフォームでは、リトル エンディアンのバイト順を使用した方が効率的です。
バイト順とバイト順マークの詳細については、www.unicode.org の「Unicode Standard」を参照してください。
![]() |
---|

次のコード例は、GetPreamble メソッドを使用して、UnicodeEncoding のインスタンスの Unicode バイト順マークをビッグエンディアン形式またはリトルエンディアン形式で返す方法を示しています。
Imports System Imports System.Text Imports Microsoft.VisualBasic Class UnicodeEncodingExample Public Shared Sub Main() Dim byteOrderMark() As Byte Dim b As Byte byteOrderMark = Encoding.Unicode.GetPreamble() Console.WriteLine("Default (little-endian) Unicode Preamble:") For Each b In byteOrderMark Console.Write("[{0}]", b) Next b Console.WriteLine(ControlChars.NewLine) Dim bigEndianUnicode As New UnicodeEncoding(True, True) byteOrderMark = bigEndianUnicode.GetPreamble() Console.WriteLine("Big-endian Unicode Preamble:") For Each b In byteOrderMark Console.Write("[{0}]", b) Next b End Sub 'Main End Class 'UnicodeEncodingExample
using System; using System.Text; class UnicodeEncodingExample { public static void Main() { Byte[] byteOrderMark; byteOrderMark = Encoding.Unicode.GetPreamble(); Console.WriteLine("Default (little-endian) Unicode Preamble:"); foreach (Byte b in byteOrderMark) { Console.Write("[{0}]", b); } Console.WriteLine("\n"); UnicodeEncoding bigEndianUnicode = new UnicodeEncoding(true, true); byteOrderMark = bigEndianUnicode.GetPreamble(); Console.WriteLine("Big-endian Unicode Preamble:"); foreach (Byte b in byteOrderMark) { Console.Write("[{0}]", b); } } }
using namespace System; using namespace System::Text; using namespace System::Collections; int main() { array<Byte>^byteOrderMark; byteOrderMark = Encoding::Unicode->GetPreamble(); Console::WriteLine( "Default (little-endian) Unicode Preamble:" ); IEnumerator^ myEnum = byteOrderMark->GetEnumerator(); while ( myEnum->MoveNext() ) { Byte b = safe_cast<Byte>(myEnum->Current); Console::Write( "[{0}]", b ); } Console::WriteLine( "\n" ); UnicodeEncoding^ bigEndianUnicode = gcnew UnicodeEncoding( true,true ); byteOrderMark = bigEndianUnicode->GetPreamble(); Console::WriteLine( "Big-endian Unicode Preamble:" ); myEnum = byteOrderMark->GetEnumerator(); while ( myEnum->MoveNext() ) { Byte b = safe_cast<Byte>(myEnum->Current); Console::Write( "[{0}]", b ); } }
import System.*; import System.Text.*; class UnicodeEncodingExample { public static void main(String[] args) { ubyte byteOrderMark[]; byteOrderMark = Encoding.get_Unicode().GetPreamble(); Console.WriteLine("Default (little-endian) Unicode Preamble:"); for(int iCtr = 0; iCtr < byteOrderMark.length; iCtr++) { ubyte b = byteOrderMark[iCtr]; Console.Write("[{0}]", String.valueOf(b)); } Console.WriteLine("\n"); UnicodeEncoding bigEndianUnicode = new UnicodeEncoding(true, true); byteOrderMark = bigEndianUnicode.GetPreamble(); Console.WriteLine("Big-endian Unicode Preamble:"); for(int iCtr = 0; iCtr < byteOrderMark.length; iCtr++) { ubyte b = byteOrderMark[iCtr]; Console.Write("[{0}]", String.valueOf(b)); } } //main } //UnicodeEncodingExample

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- UnicodeEncoding.GetPreamble メソッドのページへのリンク