Freigeben über


UTF8Encoding.Preamble Eigenschaft

Definition

Ruft ein Unicode-Bytereihenfolgenzeichen ab, das im UTF-8-Format codiert ist, wenn dieses Objekt so konfiguriert ist, dass eins angegeben wird.

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

Eine Bytespanne, die das Unicode-Bytereihenfolgezeichen enthält, wenn dieses Objekt so konfiguriert ist, dass eins bereitgestellt wird; andernfalls wird die Standardspanne verwendet.

Hinweise

Das UTF8Encoding Objekt kann eine Präambel bereitstellen, bei der es sich um eine Bytespanne handelt, die der Sequenz von Bytes vorangestellt werden kann, die sich aus dem Codierungsprozess ergeben. Durch das Voranstellen einer Sequenz codierter Bytes mit einem Bytereihenfolgezeichen (Codepunkt U+FEFF) kann der Decoder die Bytereihenfolge und das Transformationsformat oder UTF bestimmen. Das Unicode-Bytereihenfolgezeichen (BOM) wird als 0xEF 0xBB 0xBF serialisiert. Beachten Sie, dass der Unicode-Standard weder die Verwendung einer BOM für UTF-8-codierte Datenströme erfordert noch empfiehlt.

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

  • Durch Abrufen des objekts, das UTF8Encoding von der Encoding.UTF8 Eigenschaft zurückgegeben wird.

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

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

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

Für Standards, die einen Codierungstyp bereitstellen, ist eine BOM etwas redundant. Es kann jedoch verwendet werden, um einem Server zu helfen, den richtigen Codierungsheader zu senden. Alternativ kann sie als Fallback verwendet werden, falls die Codierung andernfalls verloren geht.

Es gibt einige Nachteile bei der Verwendung einer BOM. Beispielsweise kann es schwierig sein, die Datenbankfelder zu beschränken, die eine BOM verwenden. Die Verkettung von Dateien kann beispielsweise auch ein Problem sein, 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 eines BOM jedoch dringend empfohlen.

Weitere Informationen zur Bytereihenfolge und zum Bytereihenfolgezeichen finden Sie im Unicode-Standard auf der Unicode-Startseite.

Von Bedeutung

Um sicherzustellen, dass die codierten Bytes ordnungsgemäß decodiert werden, wenn sie als Datei oder als Datenstrom gespeichert werden, können Sie dem Anfang eines Datenstroms codierter Bytes ein Präambel voranstellen. Beachten Sie, dass die GetBytes Methode keine BOM einer Sequenz codierter Bytes vorangestellt hat. Die Bereitstellung eines BOM am Anfang eines geeigneten Bytedatenstroms liegt in der Verantwortung des Entwicklers.

Gilt für: