UTF8Encoding.Preamble Propiedad

Definición

Obtiene una marca BOM Unicode codificada en formato UTF-8, si el objeto se ha configurado para proporcionarla.

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

ReadOnlySpan<Byte>

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 siguientes maneras:

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

  • Llamando a un constructor con un UTF8Encoding 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 boM 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 están etiquetados 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, de lo contrario, se pierda la codificación.

El uso de una marca BOM tiene algunas desventajas. Por ejemplo, saber cómo limitar los campos de base de datos que usan una marca BOM puede ser difícil. La concatenación de archivos también puede ser un problema, por ejemplo, cuando los archivos se combinan de manera que un carácter innecesario puede acabar en el medio de los datos. Sin embargo, a pesar de los pocos inconvenientes, se recomienda encarecidamente el uso de una marca BOM.

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