UnicodeEncoding.Preamble Proprietà

Definizione

Ottiene un byte order mark Unicode codificato in formato UTF-16, se questo oggetto è configurato per fornirne 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à

ReadOnlySpan<Byte>

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 contrassegno di ordine byte (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 indicato di seguito (in esadecimale):

  • Ordine dei byte big endian: FE FF

  • Ordine dei byte little endian: FF FE

È possibile creare un'istanza di un UnicodeEncoding oggetto il cui Preamble bom è valido nei modi seguenti:

È consigliabile usare 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 o file di testo casuali archiviati quando un'azienda non ha problemi internazionali. Spesso è possibile evitare problemi utente se i dati sono contrassegnati in modo coerente e corretto.

Per gli standard che forniscono un tipo di codifica, un BOM è piuttosto ridondante. Tuttavia, può essere utilizzato per consentire a un server di inviare l'intestazione di codifica corretta. In alternativa, può essere utilizzato come fallback in caso contrario, la codifica andrà persa.

L'utilizzo di un BOM presenta alcuni svantaggi. Ad esempio, sapere come limitare i campi del database che utilizzano un BOM può essere difficile. Anche la concatenazione di file può costituire un problema, ad esempio quando i file vengono uniti in modo tale che un carattere non necessario possa finire nel mezzo dei dati. Nonostante i pochi svantaggi, tuttavia, l'utilizzo di un BOM è altamente consigliato.

Importante

Per assicurarsi che i byte codificati siano decodificati correttamente, è necessario anteporre all'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. La fornitura di un BOM all'inizio di un flusso di byte appropriato è responsabilità dello sviluppatore.

Si applica a