UnicodeEncoding.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-16 caso o objeto de codificação esteja configurado para fornecer uma.
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 byte Unicode, se esse objeto estiver configurado para fornecer um; caso contrário, o intervalo padrão.
Comentários
O UnicodeEncoding objeto pode fornecer um preâmbulo, que é um intervalo de bytes que pode ser anexado à 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 byte (ponto U+FEFF
de código) ajuda o decodificador a determinar a ordem de byte e o formato de transformação ou UTF. A BOM (marca de ordem de byte) Unicode é serializada da seguinte maneira (em hexadecimal):
Ordem de byte de grande endian:
FE FF
Ordem de byte endian pouco:
FF FE
Você pode criar uma instância de um UnicodeEncoding objeto cujo Preamble bom é válido das seguintes maneiras:
Recuperando o UnicodeEncoding objeto retornado pela propriedade ou Encoding.BigEndianUnicode pela Encoding.Unicode propriedade.
Chamando o construtor sem UnicodeEncoding() parâmetros para instanciar um UnicodeEncoding objeto.
Fornecendo
true
como o valor dobyteOrderMark
argumento para os construtores ou UnicodeEncoding(Boolean, Boolean, Boolean) construtoresUnicodeEncoding(Boolean, Boolean).
Recomendamos que você use o BOM, pois ele fornece quase certa identificação de uma codificação para arquivos que, de outra forma, perderam uma referência à sua codificação, como dados Da Web não marcados ou marcados incorretamente 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, uma 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.
Há algumas desvantagens em usar uma BOM. Por exemplo, saber como limitar os campos de banco de dados que usam uma 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 terminar no meio dos dados. No entanto, apesar das poucas desvantagens, o uso de uma BOM é altamente recomendável.
Importante
Para garantir que os bytes codificados sejam decodificados corretamente, você deve 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.