Encoding.Preamble Propriedade

Definição

Quando sobrescrito numa classe derivada, devolve um span contendo a sequência de bytes que especifica a codificação utilizada.

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 de Propriedade

Um intervalo de bytes contendo uma sequência de bytes que especifica a codificação utilizada, ou um intervalo de comprimento zero, caso não seja necessário um preâmbulo.

Observações

Opcionalmente, o Encoding objeto fornece um preâmbulo que é uma sequência de bytes que pode ser precedida pelos 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), ajuda o descodificador a determinar a ordem dos bytes e o formato de transformação ou UTF.

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

  • UTF-8: EF BB BF

  • Ordem dos bytes big endian do UTF-16: FE FF

  • UTF-16 little endian ordem de bytes: FF FE

  • UTF-32 big endian ordem dos bytes: 00 00 FE FF

  • UTF-32 little endian ordem de bytes: FF FE 00 00

Deve usar a lista de materiais (BOM), pois fornece uma identificação quase certa de uma codificação para ficheiros que, de outra forma, perderam a referência ao Encoding objeto, por exemplo, dados web não etiquetados ou incorretamente marcados ou ficheiros de texto aleatórios armazenados quando uma empresa não tinha preocupações internacionais ou outros dados. Muitas vezes, problemas do utilizador podem ser evitados se os dados forem etiquetados de forma consistente e adequada, preferencialmente em UTF-8 ou UTF-16.

Para normas que fornecem um tipo de codificação, uma BOM é algo redundante. No entanto, pode ser usado para ajudar um servidor a enviar o cabeçalho de codificação correto. Alternativamente, pode ser usado como plano B caso a codificação se perca.

Existem algumas desvantagens em usar uma lista de materiais (BOM). Por exemplo, saber como limitar os campos da base de dados que utilizam uma lista de materiais pode ser difícil. A concatenação de ficheiros também pode ser um problema, por exemplo, quando os ficheiros são fundidos de tal forma que um carácter desnecessário pode acabar no meio dos dados. Apesar das poucas desvantagens, o uso de uma lista de materiais é 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.

Atenção

Para garantir que os bytes codificados são decodificados corretamente, deve colocar um preâmbulo nos bytes codificados com prefixo. No entanto, a maioria das codificações não fornece um preâmbulo. Para garantir que os bytes codificados são decodificados corretamente, deve usar uma codificação Unicode, ou seja, UTF8Encoding, UnicodeEncoding, ou UTF32Encoding, com um preâmbulo.

Aplica-se a