Encoding.Preamble Propriedade

Definição

Quando substituído em uma classe derivada, retorna um intervalo que contém a sequência de bytes que especifica a codificação usada.

public:
 virtual property ReadOnlySpan<System::Byte> Preamble { ReadOnlySpan<System::Byte> get(); };
public virtual ReadOnlySpan<byte> Preamble { get; }
member this.Preamble : ReadOnlySpan<byte>
Public Overridable ReadOnly Property Preamble As ReadOnlySpan(Of Byte)

Valor da propriedade

Um intervalo de bytes que contém uma sequência de bytes que especifica a codificação usada ou um intervalo de comprimento zero, se um preâmbulo não for necessário.

Comentários

Opcionalmente, o Encoding objeto fornece um preâmbulo que é uma sequência de bytes que pode ser prefixada nos bytes resultantes do processo de codificação. Se o preâmbulo contiver uma marca de ordem de bytes (em Unicode, ponto de código U+FEFF), ele ajudará o decodificador a determinar a ordem de bytes e o formato de transformação ou UTF.

A marca de ordem de bytes Unicode (BOM) é serializada da seguinte maneira (em hexadecimal):

  • UTF-8: EF BB BF

  • Ordem de bytes de big endian UTF-16: FE FF

  • Ordem de bytes de pequeno endian UTF-16: FF FE

  • Ordem de bytes de big endian UTF-32: 00 00 FE FF

  • Ordem de bytes de endian utf-32: FF FE 00 00

Você deve usar o BOM, pois ele fornece quase certa identificação de uma codificação para arquivos que, de outra forma, perderam referência ao Encoding objeto, por exemplo, dados Da Web marcados incorretamente ou arquivos de texto aleatórios armazenados quando uma empresa não tinha preocupações internacionais ou outros dados. Geralmente, os problemas do usuário podem ser evitados se os dados forem marcados de forma consistente e correta, preferencialmente em UTF-8 ou UTF-16.

Para padrões que fornecem um tipo de codificação, um BOM é um pouco redundante. No entanto, ele pode ser usado para ajudar um servidor a enviar o cabeçalho de codificação correto. Como alternativa, ele pode ser usado como um fallback caso a codificação seja perdida de outra forma.

Há algumas desvantagens em usar um BOM. Por exemplo, saber como limitar os campos de banco de dados que usam um BOM pode ser difícil. A concatenação de arquivos também pode ser um problema, por exemplo, quando os arquivos são mesclados de forma que um caractere desnecessário possa acabar no meio dos dados. Apesar das poucas desvantagens, no entanto, o uso de um BOM é altamente recomendado.

Para obter mais informações sobre a ordem de bytes e a marca de ordem de bytes, consulte o Padrão Unicode na home page unicode.

Caution

Para garantir que os bytes codificados sejam decodificados corretamente, você deve prefixar bytes codificados com um preâmbulo. No entanto, a maioria das codificações não fornece um preâmbulo. Para garantir que os bytes codificados sejam decodificados corretamente, você deve usar uma codificação Unicode, ou seja, UTF8Encodingou UnicodeEncodingseja UTF32Encoding, com um preâmbulo.

Aplica-se a