UTF8Encoding.GetPreamble-Methode
Gibt eine im UTF-8-Format codierte Unicode-Bytereihenfolgemarkierung zurück, wenn der Konstruktor für diese Instanz die Bereitstellung einer Bytereihenfolgemarkierung angefordert hat.
Namespace: System.Text
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public Overrides Function GetPreamble As Byte()
'Usage
Dim instance As UTF8Encoding
Dim returnValue As Byte()
returnValue = instance.GetPreamble
public override byte[] GetPreamble ()
public:
virtual array<unsigned char>^ GetPreamble () override
public byte[] GetPreamble ()
public override function GetPreamble () : byte[]
Rückgabewert
Ein Bytearray, das die Unicode-Bytereihenfolgemarkierung enthält, wenn der Konstruktor für diese Instanz die Bereitstellung einer Bytereihenfolgemarkierung angefordert hat. Andernfalls ein Bytearray der Länge 0 (null).
Hinweise
Optional stellt UTF8Encoding eine Präambel bereit. Dabei handelt es sich um ein Bytearray, das der Bytefolge vorangestellt werden kann, die sich aus dem Codierungsvorgang ergibt. Falls die Präambel eine Bytereihenfolgemarkierung (Codepunkt U+FEFF) enthält, kann der Decoder daraus die Bytereihenfolge und das Transformationsformat bzw. UTF ermitteln. Die Unicode-Bytereihenfolgemarkierung wird als EF BB BF (hexadezimal) serialisiert. Die GetPreamble-Methode gibt ein Bytearray zurück, das die Bytereihenfolgemarkierung enthält.
Weitere Informationen über die Unicode-Codierung, die Bytereihenfolge und die Bytereihenfolgemarkierung finden Sie im Unicode-Standard unter http://www.unicode.org (nur auf Englisch verfügbar).
Warnung
Damit die codierten Bytes ordnungsgemäß decodiert werden, stellen Sie codierten Bytes eine Präambel voran.
Beispiel
Im folgenden Beispiel wird veranschaulicht, wie mit der GetPreamble-Methode die im UTF-8-Format codierte Unicode-Bytereihenfolgemarkierung zurückgegeben wird. Beachten Sie, dass der Standardkonstruktor für UTF8Encoding keine Präambel bereitstellt.
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
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();
}
}
using namespace System;
using namespace System::Text;
using namespace System::Collections;
void ShowArray( Array^ theArray )
{
IEnumerator^ myEnum = theArray->GetEnumerator();
while ( myEnum->MoveNext() )
{
Object^ o = safe_cast<Object^>(myEnum->Current);
Console::Write( "[{0}]", o );
}
Console::WriteLine();
}
int main()
{
// The default constructor does not provide a preamble.
UTF8Encoding^ UTF8NoPreamble = gcnew UTF8Encoding;
UTF8Encoding^ UTF8WithPreamble = gcnew UTF8Encoding( true );
array<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 );
}
import System.*;
import System.Text.*;
class UTF8EncodingExample
{
public static void main(String[] args)
{
// The default constructor does not provide a preamble.
UTF8Encoding utf8NoPreamble = new UTF8Encoding();
UTF8Encoding utf8WithPreamble = new UTF8Encoding(true);
ubyte preamble[];
preamble = utf8NoPreamble.GetPreamble();
Console.WriteLine("UTF8NoPreamble");
Console.WriteLine(" preamble length: {0}",
String.valueOf(preamble.length));
Console.Write(" preamble: ");
ShowArray(preamble);
preamble = utf8WithPreamble.GetPreamble();
Console.WriteLine("UTF8WithPreamble");
Console.WriteLine(" preamble length: {0}",
String.valueOf(preamble.length));
Console.Write(" preamble: ");
ShowArray(preamble);
} //main
public static void ShowArray(Array theArray)
{
Object o = null;
for (int iCtr = 0; iCtr < theArray.get_Count(); iCtr++) {
o = theArray.get_Item(iCtr);
Console.Write("[{0}]", o);
}
Console.WriteLine();
} //ShowArray
} //UTF8EncodingExample
Plattformen
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
.NET Compact Framework
Unterstützt in: 2.0, 1.0
Siehe auch
Referenz
UTF8Encoding-Klasse
UTF8Encoding-Member
System.Text-Namespace