Compartir a través de


UTF8Encoding.Preamble Propiedad

Definición

Obtiene una marca de orden de bytes Unicode codificada en formato UTF-8, si este objeto está configurado para proporcionar 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)

Valor de propiedad

Intervalo de bytes que contiene la marca de orden de bytes Unicode, si este objeto está configurado para proporcionar uno; de lo contrario, el intervalo predeterminado.

Comentarios

El UTF8Encoding objeto puede proporcionar un preámbulo, que es un intervalo de bytes que se puede prefijar a la secuencia de bytes resultantes del proceso de codificación. Anteponer una secuencia de bytes codificados con una marca de orden de bytes (punto U+FEFFde código) ayuda al descodificador a determinar el orden de bytes y el formato de transformación, o UTF. La marca de orden de bytes Unicode (BOM) se serializa como 0xEF 0xBB 0xBF. Tenga en cuenta que el estándar Unicode no requiere ni recomienda el uso de una boM para secuencias codificadas UTF-8.

Puede crear una instancia de un UTF8Encoding objeto cuya Preamble lista de materiales sea válida de las maneras siguientes:

  • Recuperando el UTF8Encoding objeto devuelto por la Encoding.UTF8 propiedad .

  • Llamando a un UTF8Encoding constructor con un encoderShouldEmitUTF8Identifier parámetro y estableciendo su valor establecido en true.

Todos los demás UTF8Encoding objetos están configurados para devolver un intervalo predeterminado en lugar de una lista de materiales válida.

La lista de materiales proporciona casi cierta identificación de una codificación para los archivos que, de lo contrario, han perdido una referencia a su codificación, como datos web sin etiquetar o archivos de texto aleatorios etiquetados incorrectamente almacenados cuando una empresa no tenía problemas internacionales. A menudo, es posible que se eviten problemas de usuario si los datos se etiquetan de forma coherente y correcta.

En el caso de los estándares que proporcionan un tipo de codificación, una boM es algo redundante. Sin embargo, se puede usar para ayudar a un servidor a enviar el encabezado de codificación correcto. Como alternativa, se puede usar como reserva en caso de que se pierda la codificación.

Hay algunas desventajas en el uso de una lista de materiales. Por ejemplo, saber cómo limitar los campos de base de datos que usan una lista de materiales puede ser difícil. La concatenación de archivos también puede ser un problema, por ejemplo, cuando los archivos se combinan de forma que un carácter innecesario pueda acabar en medio de los datos. Sin embargo, a pesar de las pocas desventajas, se recomienda encarecidamente el uso de una lista de materiales.

Para obtener más información sobre el orden de bytes y la marca de orden de bytes, vea El estándar Unicode en la página principal de Unicode.

Importante

Para asegurarse de que los bytes codificados se descodifican correctamente cuando se guardan como un archivo o como una secuencia, puede prefijar el principio de una secuencia de bytes codificados con un preámbulo. Tenga en cuenta que el GetBytes método no antepone una lista de materiales a una secuencia de bytes codificados; proporcionar una BOM al principio de una secuencia de bytes adecuada es responsabilidad del desarrollador.

Se aplica a