UTF8Encoding.Preamble Eigenschaft

Definition

Ruft eine Unicode-Bytereihenfolgemarkierung im UTF-8-Format ab, wenn dieses Objekt entsprechend konfiguriert ist.

public:
 virtual property ReadOnlySpan<System::Byte> Preamble { ReadOnlySpan<System::Byte> get(); };
public override ReadOnlySpan<byte> Preamble { get; }
member this.Preamble : ReadOnlySpan<byte>
Public Overrides ReadOnly Property Preamble As ReadOnlySpan(Of Byte)

Eigenschaftswert

ReadOnlySpan<Byte>

Ein Bytebereich, der das Unicode-Bytereihenfolgenzeichen enthält, wenn dieses Objekt so konfiguriert ist, dass eine angegeben wird; andernfalls wird der Standardbereich festgelegt.

Hinweise

Das UTF8Encoding Objekt kann eine Präamble bereitstellen, die einen Bereich von Bytes darstellt, die zur Sequenz von Bytes präfixiert werden können, die aus dem Codierungsprozess resultieren. Durch das Vorfacieren einer Sequenz codierter Bytes mit einem Bytereihenfolgezeichen (Codepunkt U+FEFF) kann der Decoder die Bytereihenfolge und das Transformationsformat oder UTF bestimmen. Das Unicode-Bytereihenfolgenzeichen (BOM) wird als 0xEF 0xBB 0xBF serialisiert. Beachten Sie, dass der Unicode-Standard weder die Verwendung eines BOM für UTF-8 codierte Datenströme erfordert noch empfiehlt.

Sie können ein UTF8Encoding Objekt instanziieren, dessen Preamble gültige BOM auf folgende Weise gültig ist:

  • Durch Abrufen des UTF8Encoding von der Encoding.UTF8 Eigenschaft zurückgegebenen Objekts.

  • Durch Aufrufen eines UTF8Encoding Konstruktors mit einem encoderShouldEmitUTF8Identifier Parameter und Festlegen des Werts auf true.

Alle anderen UTF8Encoding Objekte sind so konfiguriert, dass anstelle einer gültigen BOM ein Standardbereich zurückgegeben wird.

Die BOM stellt fast bestimmte Identifizierung einer Codierung für Dateien bereit, die andernfalls einen Verweis auf ihre Codierung verloren haben, z. B. nicht markierte oder nicht markierte Webdaten oder zufällige Textdateien, die gespeichert sind, wenn ein Unternehmen keine internationalen Bedenken hat. Häufig werden Benutzerprobleme vermieden, wenn Daten konsistent und ordnungsgemäß gekennzeichnet sind.

Bei Standards, die einen Codierungstyp bereitstellen, ist eine BOM etwas redundant. Sie kann jedoch verwendet werden, um einem Server zu helfen, den richtigen Codierungs Header zu senden. Alternativ kann es als Fall Back für den Fall verwendet werden, dass die Codierung andernfalls verloren geht.

Es gibt einige Nachteile bei der Verwendung einer BOM. Beispielsweise kann das Einschränken der Datenbankfelder, die eine BOM verwenden, schwierig sein. Die Verkettung von Dateien kann auch ein Problem darstellen, z. b. wenn Dateien so zusammengeführt werden, dass ein unnötiges Zeichen in der Mitte der Daten enden kann. Trotz der wenigen Nachteile wird die Verwendung einer BOM dringend empfohlen.

Weitere Informationen zur Byte Reihenfolge und zur Byte Reihenfolge-Markierung finden Sie im Unicode-Standard auf der Unicode-Homepage.

Wichtig

Um sicherzustellen, dass die codierten Bytes ordnungsgemäß decodiert werden, wenn sie als Datei oder als Datenstrom gespeichert werden, können Sie den Anfang eines Codierten Bytes-Datenstroms mit einer Präamble präfixieren. Beachten Sie, dass die GetBytes Methode keine BOM an eine Sequenz codierter Bytes vorgibt; die Bereitstellung eines BOM am Anfang eines entsprechenden Bytestroms ist die Verantwortung des Entwicklers.

Gilt für