Encoding.Preamble Свойство

Определение

При переопределении в производном классе возвращает диапазон, содержащий последовательность байтов, задающую используемую кодировку.

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)

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

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

Комментарии

При необходимости Encoding объект предоставляет преамбулу, которая представляет собой последовательность байтов, которая может быть предваряться байтами, полученными в результате процесса кодирования. Если преамбула содержит метку порядка байтов (в Юникоде, кодовую точку U + FEFF), она помогает декодеру определить порядок байтов и формат преобразования или кодировку UTF.

Метка порядка байтов Юникода (BOM) сериализуется следующим образом (в шестнадцатеричном формате):

  • UTF-8: EF BB BF

  • Порядковый номер UTF-16 с обратным порядком байтов: FE FF

  • UTF-16, прямой порядок байтов: FF FE

  • UTF-32. обратный порядок байтов: 00 00 FE FF

  • UTF-32, прямой порядок байтов: FF FE 00 00

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

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

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

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

Внимание!

Чтобы обеспечить правильную декодирование закодированных байтов, следует добавить в байты префикс в формате преамбулы. Однако большинство кодировок не предоставляют преамбулы. Чтобы обеспечить правильную декодирование закодированных байтов, следует использовать кодировку Юникода, то есть,, UTF8EncodingUnicodeEncoding или UTF32Encoding , с преамбулой.

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