Поделиться через


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)

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

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

Комментарии

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

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

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

  • Вызывая конструктор с параметром и задав для нее UTF8EncodingencoderShouldEmitUTF8Identifier значение true.

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

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

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

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

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

Это важно

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

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