UTF8Encoding.Preamble Свойство

Определение

Возвращает метку порядка байтов Юникода в кодировке UTF-8, если объект настроен для ее предоставления.

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)

Значение свойства

ReadOnlySpan<Byte>

Диапазон байтов, содержащий метку порядка байтов Юникода, если этот объект настроен для предоставления; в противном случае — диапазон по умолчанию.

Комментарии

Объект UTF8Encoding может предоставить преамблирование, которое представляет собой диапазон байтов, который можно префиксировать в последовательность байтов, результатом которой является процесс кодирования. Подготовка последовательности закодированных байтов с меткой порядка байтов (кодовая точка U+FEFF) помогает декодеру определить порядок байтов и формат преобразования или UTF. Метка порядка байтов Юникода сериализуется как 0xEF 0xBB 0xBF. Обратите внимание, что стандарт Юникода не требует и не рекомендует использовать BOM для потоков в кодировке UTF-8.

Вы можете создать экземпляр UTF8Encoding объекта, Preamble который является допустимым BOM следующими способами:

  • Извлекая объект, UTF8Encoding возвращаемый свойством Encoding.UTF8 .

  • Путем вызова конструктора UTF8Encoding с параметром и присвоения encoderShouldEmitUTF8Identifier ей значения true.

Все остальные UTF8Encoding объекты настроены для возврата диапазона по умолчанию, а не допустимого BOM.

BOM обеспечивает почти определенную идентификацию кодировки для файлов, которые в противном случае потеряли ссылку на их кодировку, например неотключенные или неправильно помеченные веб-данные или случайные текстовые файлы, хранящиеся, когда бизнес не имеет международных проблем. Часто проблемы с пользователем могут быть избежать, если данные последовательно и правильно помечены.

Для стандартов, предоставляющих тип кодировки, BOM является несколько избыточным. Однако его можно использовать, чтобы помочь серверу отправить правильный заголовок кодировки. Кроме того, его можно использовать в качестве резервного, если кодировка в противном случае будет потеряна.

Существует ряд недостатков использования спецификации. Например, знание того, как ограничить поля базы данных, использующие СПЕЦИФИКАЦИю, может оказаться затруднительным. Объединение файлов может быть проблемой, например, при слиянии файлов таким образом, что ненужный символ может оказаться в середине данных. Несмотря на множество недостатков, настоятельно рекомендуется использовать СПЕЦИФИКАЦИю.

Дополнительные сведения о порядке байтов и метке порядка байтов см. в стандарте Юникода на домашней странице Юникода.

Важно!

Чтобы убедиться, что закодированные байты декодируются должным образом при сохранении в виде файла или в виде потока, можно префиксировать начало потока закодированных байтов с преамблированием. Обратите внимание, что GetBytes метод не добавляет BOM в последовательность закодированных байтов; предоставление BOM в начале соответствующего потока байтов является ответственностью разработчика.

Применяется к