UTF8Encoding.Preamble Właściwość

Definicja

Pobiera znak kolejności bajtów Unicode zakodowany w formacie UTF-8, jeśli ten obiekt jest skonfigurowany do podawania.

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)

Wartość właściwości

Zakres bajtów zawierający znacznik kolejności bajtów Unicode, jeśli ten obiekt jest skonfigurowany do podawania; w przeciwnym razie domyślny zakres.

Uwagi

UTF8Encoding Obiekt może zapewnić preambułę, która jest zakresem bajtów, które mogą być poprzedzone sekwencją bajtów, które wynikają z procesu kodowania. Prefakcjonowanie sekwencji zakodowanych bajtów przy użyciu znaku kolejności bajtów (punktu U+FEFFkodu ) pomaga dekoderowi określić kolejność bajtów i format przekształcenia lub UTF. Znak kolejności bajtów Unicode (BOM) jest serializowany jako 0xEF 0xBB 0xBF. Należy pamiętać, że standard Unicode nie wymaga ani nie zaleca użycia modelu BOM dla strumieni zakodowanych w formacie UTF-8.

Można utworzyć wystąpienie UTF8Encoding obiektu, którego Preamble obiekt jest prawidłowym obiektem BOM w następujący sposób:

  • Po pobraniu obiektu zwróconego UTF8EncodingEncoding.UTF8 przez właściwość.

  • UTF8Encoding Wywołując konstruktor z parametrem encoderShouldEmitUTF8Identifier i ustawiając jego wartość na true.

Wszystkie inne UTF8Encoding obiekty są skonfigurowane do zwracania domyślnego zakresu, a nie prawidłowego modelu BOM.

Model BOM zapewnia niemal pewną identyfikację kodowania plików, które w przeciwnym razie straciły odwołanie do ich kodowania, takie jak nieotagowane lub nieprawidłowo oznakowane dane internetowe lub losowe pliki tekstowe przechowywane, gdy firma nie miała międzynarodowych problemów. Często problemy użytkowników mogą być unikane, jeśli dane są konsekwentnie i prawidłowo oznakowane.

W przypadku standardów zapewniających typ kodowania model BOM jest nieco nadmiarowy. Można go jednak użyć do ułatwienia serwerowi wysyłania poprawnego nagłówka kodowania. Alternatywnie można go użyć jako rezerwowego w przypadku utraty kodowania.

Istnieją pewne wady używania modelu BOM. Na przykład wiedza na temat ograniczania pól bazy danych korzystających z modelu BOM może być trudna. Łączenie plików może być również problemem, na przykład gdy pliki są scalane w taki sposób, aby niepotrzebny znak mógł znajdować się w środku danych. Pomimo kilku wad, jednak stosowanie modelu BOM jest zdecydowanie zalecane.

Aby uzyskać więcej informacji na temat kolejności bajtów i znaku zamówienia bajtów, zobacz Standard Unicode na stronie głównej Unicode.

Ważne

Aby upewnić się, że zakodowane bajty są prawidłowo dekodowane, gdy są zapisywane jako plik lub jako strumień, można prefiks początku strumienia zakodowanych bajtów z preambułą. Należy pamiętać, że GetBytes metoda nie poprzedza obiektu BOM sekwencją zakodowanych bajtów; dostarczanie obiektu BOM na początku odpowiedniego strumienia bajtów jest obowiązkiem dewelopera.

Dotyczy