UnicodeEncoding.Preamble Właściwość

Definicja

Pobiera znak kolejności bajtów Unicode zakodowany w formacie UTF-16, 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

ReadOnlySpan<Byte>

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

UnicodeEncoding Obiekt może stanowić preambułę, która jest zakresem bajtów, które można wstępnie rozdzielić na sekwencję bajtów wynikających 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 w następujący sposób (w szesnastkowym):

  • Kolejność bajtów big endian: FE FF

  • Mała kolejność bajtów endian: FF FE

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

Zalecamy użycie modelu BOM, ponieważ zapewnia niemal pewną identyfikację kodowania plików, które w przeciwnym razie utracił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.

Ważne

Aby upewnić się, że zakodowane bajty są prawidłowo dekodowane, należy 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