UTF8Encoding.Preamble Proprietà

Definizione

Ottiene un byte order mark Unicode codificato in formato UTF-8, 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 UTF8Encoding può fornire un preambolo, ovvero un intervallo di byte che può essere preceduto dalla 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 (BOM) Unicode viene serializzato come 0xEF 0xBB 0xBF. Si noti che lo standard Unicode non richiede né consiglia l'uso di un BOM per flussi con codifica UTF-8.

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

  • Recuperando l'oggetto UTF8Encoding restituito dalla Encoding.UTF8 proprietà .

  • Chiamando un costruttore con un UTF8Encoding encoderShouldEmitUTF8Identifier parametro e impostandone il valore impostato su true.

Tutti gli altri UTF8Encoding oggetti sono configurati per restituire un intervallo predefinito anziché un bom valido.

La distinta base 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.

Per ulteriori informazioni sull'ordine dei byte e sulla byte order mark, vedere lo standard Unicode nella Home Page Unicode.

Importante

Per assicurarsi che i byte codificati vengano decodificati correttamente quando vengono salvati come file o come flusso, è possibile 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. La fornitura di un BOM all'inizio di un flusso di byte appropriato è responsabilità dello sviluppatore.

Si applica a