UnicodeEncoding.Preamble Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene un byte order mark Unicode codificato in formato UTF-16, se questo oggetto è configurato per specificarne uno.
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)
Valore della proprietà
Intervallo di byte contenente il contrassegno di ordine dei byte Unicode, se questo oggetto è configurato per specificarne uno; in caso contrario, l'intervallo predefinito.
Commenti
L'oggetto UnicodeEncoding può fornire un preambolo, ovvero un intervallo di byte che può essere anteporto alla sequenza di byte risultante dal processo di codifica. La prefazione di una sequenza di byte codificati con un byte order mark (punto U+FEFFdi codice) consente al decodificatore di determinare l'ordine dei byte e il formato di trasformazione o UTF. Il byte order mark Unicode (BOM) viene serializzato come segue (in formato esadecimale):
Ordine dei byte big endian:
FE FFOrdine dei byte little endian:
FF FE
È possibile creare un'istanza di un UnicodeEncoding oggetto la cui Preamble distinta base è valida nei modi seguenti:
Recuperando l'oggetto UnicodeEncoding restituito dalla Encoding.Unicode proprietà o Encoding.BigEndianUnicode .
Chiamando il costruttore senza UnicodeEncoding() parametri per creare un'istanza di un UnicodeEncoding oggetto .
Specificando
truecome valore dell'argomentobyteOrderMarkai UnicodeEncoding(Boolean, Boolean) costruttori o UnicodeEncoding(Boolean, Boolean, Boolean) .
È consigliabile utilizzare la distinta base, poiché fornisce quasi certamente un'identificazione di una codifica per i file che altrimenti hanno perso un riferimento alla loro codifica, ad esempio dati Web senza tag o file di testo casuali con tag non contrassegnati correttamente o file di testo casuali archiviati quando un'azienda non ha problemi internazionali. Spesso i problemi utente possono essere evitati se i dati sono contrassegnati in modo coerente e corretto.
Per gli standard che forniscono un tipo di codifica, un bom è un po' ridondante. Tuttavia, può essere usato per consentire a un server di inviare l'intestazione di codifica corretta. In alternativa, può essere usato come fallback nel caso in cui la codifica vada persa in caso contrario.
Esistono alcuni svantaggi per l'uso di una distinta base. Ad esempio, sapere come limitare i campi di database che usano una distinta base può essere difficile. La concatenazione dei file può anche essere un problema, ad esempio quando i file vengono uniti in modo tale che un carattere non necessario possa finire al centro dei dati. Nonostante i pochi svantaggi, tuttavia, l'uso di un BOM è altamente consigliato.
Importante
Per assicurarsi che i byte codificati siano decodificati correttamente, è necessario anteporre l'inizio di un flusso di byte codificati con un preambolo. Si noti che il GetBytes metodo non antepone un BOM a una sequenza di byte codificati. Fornire un BOM all'inizio di un flusso di byte appropriato è responsabilità dello sviluppatore.