Изменения

Перейти к: навигация, поиск

Представление символов, таблицы кодировок

774 байта добавлено, 05:52, 26 октября 2011
Нет описания правки
'''Byte Order Mark (BOM)''' - Unicode символ, используемый для индикации порядка байтов (порядка байт) текстового файла. Его кодовый символ U+FEFF(ZERO WIDTH NON-BREAKING SPACE)''неразрывный пробел с нулевой шириной'', также именуемый ''меткой порядка байтов'' (англ. byte order mark, BOM). По спецификации его использование не является обязательным, однако если BOM используется, то он должен быть установлен вначале текстового файла. Помимо своего конкретного использования в качестве указателя порядка байтов, символ может также указать какой кодировкой Unicode закодирован текст.
Кодировка Unicode может использовать 16-битные или 32-разрядных числа и приложение должно знать как дальше с ним поступать. Поэтому потребность в BOM возникает при обмене документами.
 
В начале Unicode файла вы можете найти несколько байтов, отображающих Unicode точку кода U+FEFF ZERO WIDTH NON-BREAKING SPACE (ZWNBSP). Эта комбинация байтов известна как byte-order mark (BOM).
Когда символ закодирован в UTF-16, его 2 или 4 байта можно упорядочить двумя разными способами (little-endian или big-endian). Изображение ниже показывает это. byte-order mark указывает, какой порядок используется, так что приложения могут немедленно расшифровать контент. UTF-16 контент должен всегда начинатся с BOM.
В кодировке UTF-8, наличие BOM не является существенным, поскольку, в отличие от UTF-16 кодирования, нет альтернативной последовательности байтов. Когда BOM используется на страницах или редакторах для контента закодированного в UTF-8, иногда он может представить пробелы или короткие последовательности символов, имеющие странный вид (такие как ). Именно поэтому, при наличии выбора, для совместимости, как правило, лучше упустить BOM в UTF-8 контенте.Однако BOM могут еще встречаться в тексте закодированном в UTF-8, как побочный продукт перекодирования или потому, что он был добавлен редактором. В этом случае BOM часто называют подписью UTF-8.
BOM также используется для текста обозначенного как UTF-32, и не должен использоваться для текста обозначенного как UTF-32BE или UTF-32LE,поскольку символ U+0000 допускается Юникодом.
== Представление BOM в кодировках ==
{| class="wikitable"
|-
|}
К сожалению, этот способ не позволяет надёжно различать UTF-16LE и UTF-32LE, поскольку символ U+0000 допускается Юникодом (хотя реальные тексты редко начинаются с него).
== Ссылки ==
55
правок

Навигация