UnicodeEncoding.Preamble Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
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+FEFF
kodu) 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:
Po pobraniu obiektu zwróconego UnicodeEncoding Encoding.Unicode przez właściwość or Encoding.BigEndianUnicode .
Wywołując konstruktor bez UnicodeEncoding() parametrów w celu utworzenia UnicodeEncoding wystąpienia obiektu.
true
Podając jako wartość argumentubyteOrderMark
do UnicodeEncoding(Boolean, Boolean) konstruktorów lubUnicodeEncoding(Boolean, Boolean, Boolean).
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.