UTF8Encoding.Preamble Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém uma marca de ordem de byte Unicode codificada no formato UTF-8, se esse objeto estiver configurado para fornecer um.
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 da propriedade
Um intervalo de bytes que contém a marca de ordem de bytes Unicode, se esse objeto estiver configurado para fornecer um; caso contrário, o intervalo padrão.
Comentários
O UTF8Encoding objeto pode fornecer um preâmbulo, que é um intervalo de bytes que pode ser prefixado na sequência de bytes resultantes do processo de codificação. A pré-criação de uma sequência de bytes codificados com uma marca de ordem de bytes (ponto U+FEFFde código) ajuda 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 como 0xEF 0xBB 0xBF. Observe que o Padrão Unicode não requer nem recomenda o uso de um BOM para fluxos codificados em UTF-8.
Você pode criar uma instância de um UTF8Encoding objeto cujo Preamble bom é válido das seguintes maneiras:
Recuperando o UTF8Encoding objeto retornado pela Encoding.UTF8 propriedade.
Chamando um UTF8Encoding construtor com um
encoderShouldEmitUTF8Identifierparâmetro e definindo seu valor definido comotrue.
Todos os outros UTF8Encoding objetos são configurados para retornar um intervalo padrão em vez de um BOM válido.
O BOM fornece quase certa identificação de uma codificação para arquivos que, de outra forma, perderam uma referência à codificação, como dados da Web marcados incorretamente ou não marcados ou arquivos de texto aleatórios armazenados quando uma empresa não tinha preocupações internacionais. Muitas vezes, os problemas do usuário podem ser evitados se os dados forem marcados de forma consistente e correta.
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.
Importante
Para garantir que os bytes codificados sejam decodificados corretamente quando forem salvos como um arquivo ou como um fluxo, você pode prefixar o início de um fluxo de bytes codificados com um preâmbulo. Observe que o GetBytes método não prepara um BOM para uma sequência de bytes codificados; fornecer um BOM no início de um fluxo de bytes apropriado é responsabilidade do desenvolvedor.