55
правок
Изменения
Нет описания правки
Для определения формата представления Юникода в текстовом файле используется приём, по которому в начале текста записывается символ U+FEFF (неразрывный пробел с нулевой шириной), также именуемый меткой порядка байтов (англ. byte order mark, BOM). Этот способ позволяет различать UTF-16LE и UTF-16BE, поскольку символа U+FFFE не существует. Также он иногда применяется для обозначения формата UTF-8, хотя к этому формату и неприменимо понятие порядка байтов.
== Представление кодировки Byte order marks BOM в кодировке ==
{| class="wikitable"
|-
! Кодирование
! Представление (Шестнадцатеричная)
! Представление (ISO-8859-1)
|-
| UTF-8
| <code>EF BB BF</code>
| <code></code>
|-
| UTF-16 (Big Endian|BE)
| <code>FE FF</code>
| <code>þÿ</code>
|-
| UTF-16 (Little Endian|LE)
| <code>FF FE</code>
| <code>ÿþ</code>
|-
| UTF-32 (BE)
| <code>00 00 FE FF</code>
| <code>□□þÿ</code> (□ ASCII символ нуль)
|-
| UTF-32 (LE)
| <code>FF FE 00 00</code>
| <code>ÿþ□□</code> (□ ASCII символ нуль)
|-
|}
К сожалению, этот способ не позволяет надёжно различать UTF-16LE и UTF-32LE, поскольку символ U+0000 допускается Юникодом (хотя реальные тексты редко начинаются с него).