одна кодировочная таблица содержит 1024 символов для кодирования символа с помощью второй таблицы
Одна кодировочная таблица содержит 1024 символа?
Одна кодировочная таблица содержит 1024 символа.
Для кодирования символа из второй таблицы требуется на 1 бит меньше, чем для кодирования символа из первой таблицы.
Определите, сколько символов включено во вторую кодировочную таблицу.
Зависит от того, сколько бит весит 1 символ из первой таблицы
Программист Вася создал текст, состоящий из 1000 символов?
Программист Вася создал текст, состоящий из 1000 символов.
Нам известно, что символы он брал из некоторой таблицы 16 * 8, причем все символы этой таблицы различны.
Определите информационный объем текста в битах.
Объясните свой ответ.
1. Определите тип выравнивания для каждого из приведённых ниже фрагментов :Фрагмент 1Для представления текстовой информации в компьютере используется алфавит мощностью 256 символов?
1. Определите тип выравнивания для каждого из приведённых ниже фрагментов :
Для представления текстовой информации в компьютере используется алфавит мощностью 256 символов.
Все символы кодировочной таблицы пронумерованы от 0 до 255.
Каждому номеру соответствует двоичный код от 000000000 до 111111111.
Для разных типов ЭВМ существуют разные таблицы кодировки.
Для компьютеров типа IBM PC международным стандартом стала кодировочная таблица ASCII (American Standart Code for Information Interchange).
Первая половина этой таблицы имеет международный стандарт (символы от 0 до 127), вторая половина называется кодовой страницей и существует в различных вариантах.
В какой кодировочной таблице можно закодировать 65536 различных символов?
В какой кодировочной таблице можно закодировать 65536 различных символов?
Два шифровальщика обменялись сообщениями по 200 закодированных символов?
Два шифровальщика обменялись сообщениями по 200 закодированных символов.
Придумай свою кодировочную таблицу?
Придумай свою кодировочную таблицу.
Сколько символов содержится в тексте, использующем таблицу ASCII, ЕСЛИ ИЗВЕСТНО, ЧТО ОН ЗАНИМАЕТ 24 576 БИТ ПАМЯТИ?
Сколько символов содержится в тексте, использующем таблицу ASCII, ЕСЛИ ИЗВЕСТНО, ЧТО ОН ЗАНИМАЕТ 24 576 БИТ ПАМЯТИ.
Сколько битов необходимо для кодирования символа с помощью таблицы ASCII?
Сколько битов необходимо для кодирования символа с помощью таблицы ASCII.
На флоте используется 5 разных флажков?
На флоте используется 5 разных флажков.
Для кодирования одного символа требуется 4 флага.
Сколько символов можно закодировать?
Дан символ?
Запиши десятичный код для данного символа, если используется таблица кодировки ASCII.
В алфавите 64 символа текст на 1024 таблицах по 512 символов сколько информации?
В алфавите 64 символа текст на 1024 таблицах по 512 символов сколько информации.
Ответ 4 функция div определяет целочисленное деление 22 делим на 5 = 4 в остатке 2.
Var a, b : integer ; s : string ; beginreadln(a) ; if (a> = 0) and (a.
1. 5 2. 1 3. не видно задание.
Извени но мне проще написать на Укр. Обробка інформації, введення та виведення інформації.
Только n должно быть фиксированым числом иначе выдаст ошибку.
Условие : Написать программу, которая проверяет, является ли четным введенное пользователем целое трехзначное число. Путь решения : сохраняем в переменную введенное пользователем число, например в aполучаем остаток деления на 2 и сравнимаем с 0. Е..
Одна кодировочная таблица содержит 1024 символа. Для кодирования символа из второй таблицы требуется на 1 бит меньше, чем для кодирования символа из
первой таблицы. Определите, сколько символов включено во вторую кодировочную таблицу
Зависит от того, сколько бит весит 1 символ из первой таблицы
Разница веса двух табилц равна 1024 бит, так как вес одного сивола в первой таблице равен (х-1), то в таблице 2 кол-во символом равно 1024 + 1024/(х-1)
Другие вопросы из категории
перекодировке его в международную систему кодов ASCII, сохраняя первоначальный информационный объем сообщения?
руб., журнал h руб. У покупателя денег S руб. Хватит ли их на 3 журнала и 2
книги?.
Читайте также
(мощность) обозначим N(a) и N(b) соответственно. Выразите величину N(a) через величину N(b)
набора «А, В, Е, К, М, Н, О, Р, С, Т, У, Х»), номер (трехзначное число от 000 до 999). При создании базы данных автомобильных номеров Петя решил хранить каждый номер в виде массива из 8 символов (два символа на номер региона, три символа на серию и три символа на номер), кодируя каждый символ с помощью однобайтной кодировки ASCII. Вася решил уменьшить объем хранимых данных и принял решение хранить каждый номер в виде трех чисел – одно число для номера региона, одно число для серии (представив все возможные серии в виде натуральных чисел) и одно число для номера. Каждое число Вася будет хранить отдельно, используя для его кодирования минимально возможное число бит. На сколько бит уменьшится объем памяти, необходимый для хранения одного произвольного номера, в варианте кодирования Васи по сравнению с вариантом кодирования Пети? В ответе укажите целое число.
котировки Unicode ( таблица кодировали содержит 65536 символов ) в котировку windows ( таблица котировки содержит 256 символов )?
Unicode (таблица кодировки содержит 65 536 символов) в кодировку ASCII (таблица кодировки содержит 256 символов)?
Unicode (таблица кодировки содержит 65 536 символов) в кодировку ASCII (таблица кодировки содержит 256 символов)?
a. в 16 раз
b. в 8 раз
c. в 1,5 раза
d. в 2 раза
Помогите разобраться по информатике!?
Текст, кодированный с помощью однобайтной кодировки ASCII, занял 1024 байта памяти.
Петя проанализировал этот текст и понял, что в нем используются далеко не все символы, доступные при кодировании в ASCII. Он составил таблицу символов, состоящую только из тех символов, которые хотя бы раз встречаются в тексте, и закодировал текст с ее использованием, кодируя каждый символ минимально возможным одинаковым для всех символов количеством бит. В результате получился файл, размером 896 байт.
Вася более внимательно посмотрел на текст и обнаружил, что его можно разделить на две равные половины. Причем в первой половине текста используется ровно четверть от общего количества символов в кодовой таблице, которую построил Петя, а во второй половине текста встречаются все символы из кодовой страницы Пети. Тогда Вася решил создать для первой половины текста новую кодовую таблицу и закодировать первую половину текста, кодируя каждый символ минимально возможным одинаковым количеством бит, используя свою таблицу, а вторую половину оставить кодированной по Петиной таблице. В результате Вася получил файл, состоящий из двух половинок, закодированный с использованием двух таблиц кодов символов. Какой размер в байтах получился у этого файла? Файлы, кодированные с использованием всех указанных в задаче таблиц, не содержат никакой дополнительной информации, кроме собственно кодируемого текста. В ответе укажите целое число.
1. Текст содержит всего 1024 символа.
2. 896 байт х 8 = 7168 бит.
3. 7168 бит / 1024 символа = 7бит/символ в Петиной кодовой таблице.
Теперь самое сложное для понимания. Определяем разрядность Васиной кодовой таблицы. В ней в 4 раза меньше уникальных символов, поэтому для их кодирования достаточно 5бит/символ.
5. 512 символов х 5 бит/символ + 512 символов х 7 бит/символ = 6144 бит = 768 байт
Решение задач на тему «Кодирование текстовой информации»
Решение задач на тему «Кодирование текстовой информации»
1. Объем памяти, занимаемый текстом.
2. Кодирование (декодирование) текстовой информации.
3. Внутреннее представление текста в компьютере.
1. Объем памяти, занимаемый текстом.
В задачах такого типа используются понятия:
· единицы измерения информации (бит, байт и др.)
Для представления текстовой (символьной) информации в компьютере используется алфавит мощностью 256 символов. Один символ из такого алфавита несет 8 бит информации (28 =256). 8 бит =1 байту, следовательно, двоичный код каждого символа в компьютерном тексте занимает 1 байт памяти.
1. Сколько бит памяти займет слово «Микропроцессор»?([1], c.131, пример 1)
Слово состоит из 14 букв. Каждая буква – символ компьютерного алфавита, занимает 1 байт памяти. Слово занимает 14 байт =14*8=112 бит памяти.
2. Текст занимает 0, 25 Кбайт памяти компьютера. Сколько символов содержит этот текст? ([1], c.133, №31)
Переведем Кб в байты: 0, 25 Кб * 1024 =256 байт. Так как текст занимает объем 256 байт, а каждый символ – 1 байт, то в тексте 256 символов.
Ответ: 256 символов
3. Текст занимает полных 5 страниц. На каждой странице размещается 30 строк по 70 символов в строке. Какой объем оперативной памяти (в байтах) займет этот текст? ([1], c.133, №32)
30*70*5 = 10500 символов в тексте на 5 страницах. Текст займет 10500 байт оперативной памяти.
4. Считая, что каждый символ кодируется одним байтом, оцените информационный объем следующего предложения из пушкинского четверостишия:
Певец-Давид был ростом мал, Но повалил же Голиафа! (ЕГЭ_2005. демо, уровень А)
В тексте 50 символов, включая пробелы и знаки препинания. При кодировании каждого символа одним байтом на символ будет приходиться по 8 бит, Следовательно, переведем в биты 50*8= 400 бит.
5. Считая, что каждый символ кодируется одним байтом, оцените информационный объем следующего предложения в кодировке КОИ-8: Сегодня метеорологи предсказывали дождь. (ЕГЭ_2005, уровень А)
В таблице КОИ-8 каждый символ закодирован с помощью 8 бит. См. решение задачи №4.
Ответ: 320 бит
6. Считая, что каждый символ кодируется 16 битами, оцените информационный объем следующего предложения в кодировке Unicode:
Каждый символ кодируется 8 битами.
34 символа в предложении. Переведем в биты: 34*16=544 бита.
Ответ: 544 бит
7. Каждый символ закодирован двухбайтным словом. Оцените информационный объем следующего предложения в этой кодировке:
В одном килограмме 100 грамм.
19 символов в предложении. 19*2 =38 байт
Ответ: 38 байт
8. Текст занимает полных 10 секторов на односторонней дискете объемом 180 Кбайт. Дискета разбита на 40 дорожек по 9 секторов. Сколько символов содержит текст? ([1], c.133, №34)
Ответ: 5120 символов
9. Сообщение передано в семибитном коде. Каков его информационный объем в байтах, если известно, что передано 2000 символов.
Если код символа содержит 7 бит, а всего 2000 символов, узнаем сколько бит займет все сообщение. 2000 х 7=14000 бит.
Переведем результат в байты. 14000 : 8 =1750 байт
10. Сколько секунд потребуется модему, передающему сообщение со скоростью 28800 бит/с, чтобы передать 100 страниц текста в 30 строк по 60 символов каждая, при условии, что каждый символ кодируется одним байтом? (ЕГЭ_2005, уровень В)
Найдем объем сообщения. 30*60*8*100 =1440000 бит. Найдем время передачи сообщения модемом. 1440000 : 28800 =50 секунд
11. Сколько секунд потребуется модему, передающему сообщения со скоростью 14400 бит/с, чтобы передать сообщение длиной 225 Кбайт? (ЕГЭ_2005, уровень В)
Переведем 225 Кб в биты.225 Кб *1024*8 = 1843200 бит. Найдем время передачи сообщения модемом. 1843200: 14400 =128 секунд.
2. Кодирование (декодирование) текстовой информации.
В задачах такого типа используются понятия:
Кодирование – отображение дискретного (прерывного, импульсного) сообщения в виде определенных сочетаний символов.
Код (от французского слова code – кодекс, свод законов) – правило по которому выполняется кодирование.
Кодовая таблица (или кодовая страница) – таблица, устанавливающая соответствие между символами алфавита и двоичными числами.
Примеры кодовых таблиц (имеются на CD диске к учебнику Н. Угринович):
1) #154 неразрывный пробел.
Рис.1 Кодировка КОИ8-Р
· ASCII –American Standard Code for Information Interchange (американский стандарт кодов для обмена информацией) – это восьмиразрядная кодовая таблица, в ней закодировано 256 символов (127- стандартные коды символов английского языка, спецсимволы, цифры, а коды от 128 до 255 – национальный стандарт, алфавит языка, символы псевдографики, научные символы, коды от 0 до 32 отведены не символам, а функциональным клавишам).
Рис. 2 Международная кодировка ASCII
· Unicode – стандарт, согласно которому для представления каждого символа используется 2 байта. (можно кодировать математические символы, русские, английские, греческие, и даже китайские). C его помощью можно закодировать не 256, а 65536 различных символов. Полная спецификация стандарта Unicode включает в себя все существующие, вымершие и искусственно созданные алфавиты мира, а также множество математических, музыкальных, химических и прочих символов
1) #160 неразрывный пробел,
2) #173 мягкий перенос.
Рис. 3 Кодировка CP1251
1) #255 неразрывный пробел.
Рис. 4 Кодировка СР866
· Мас – кодировка в ПК фирмы Apple, работающих под управлением операционной системы Mac OS.
1) #202 неразрывный пробел.
Рис. 5 Кодировка Mac
1) Коды 128-159 не используются;
2) #160 неразрывный пробел,
3) #173 мягкий перенос.
Рис. 6 Кодировка ISO 8859-5
Используем кодировочные таблицы
12. Как будет выглядеть слово «диск», записанное в кодировке СР1251, в других кодировках. ([2], стр. 68 №2.63)
Последовательность десятичных кодов слова «диск» составляем на основе кодировочных таблиц
Представление символов, таблицы кодировок
Содержание
Представление символов в вычислительных машинах [ править ]
В вычислительных машинах символы не могут храниться иначе, как в виде последовательностей бит (как и числа). Для передачи символа и его корректного отображения ему должна соответствовать уникальная последовательность нулей и единиц. Для этого были разработаны таблицы кодировок.
Таблицы кодировок [ править ]
На заре компьютерной эры на каждый символ было отведено по пять бит. Это было связано с малым количеством оперативной памяти на компьютерах тех лет. В эти [math]32[/math] символа входили только управляющие символы и строчные буквы английского алфавита.
С ростом производительности компьютеров стали появляться таблицы кодировок с большим количеством символов. Первой семибитной кодировкой стала ASCII7. В нее уже вошли прописные буквы английского алфавита, арабские цифры, знаки препинания. Затем на ее базе была разработана ASCII8, в которым уже стало возможным хранение [math]256[/math] символов: [math]128[/math] основных и еще столько же расширенных. Первая часть таблицы осталась без изменений, а вторая может иметь различные варианты (каждый имеет свой номер). Эта часть таблицы стала заполняться символами национальных алфавитов.
Но для многих языков (например, арабского, японского, китайского) [math]256[/math] символов недостаточно, поэтому развитие кодировок продолжалось, что привело к появлению UNICODE.
Кодировки стандарта ASCII [ править ]
Определение: |
ASCII — таблицы кодировок, в которых содержатся основные символы (английский алфавит, цифры, знаки препинания, символы национальных алфавитов(свои для каждого региона), служебные символы) и длина кода каждого символа [math]n = 8[/math] бит. |
Кодировки стандарта ASCII ( [math]8[/math] бит):
Структурные свойства таблицы [ править ]
Кодировки стандарта UNICODE [ править ]
Юникод или Уникод (англ. Unicode) — это промышленный стандарт обеспечивающий цифровое представление символов всех письменностей мира, и специальных символов.
Стандарт предложен в 1991 году некоммерческой организацией «Консорциум Юникода» (англ. Unicode Consortium, Unicode Inc.). Применение этого стандарта позволяет закодировать очень большое число символов из разных письменностей. Стандарт состоит из двух основных разделов: универсальный набор символов (англ. UCS, universal character set) и семейство кодировок (англ. UTF, Unicode transformation format). Универсальный набор символов задаёт однозначное соответствие символов кодам — элементам кодового пространства, представляющим неотрицательные целые числа.Семейство кодировок определяет машинное представление последовательности кодов UCS.
Коды в стандарте Unicode разделены на несколько областей. Область с кодами от U+0000 до U+007F содержит символы набора ASCII с соответствующими кодами. Далее расположены области знаков различных письменностей, знаки пунктуации и технические символы. Под символы кириллицы выделены области знаков с кодами от U+0400 до U+052F, от U+2DE0 до U+2DFF, от U+A640 до U+A69F. Часть кодов зарезервирована для использования в будущем.
Кодовое пространство [ править ]
Хотя формы записи UTF-8 и UTF-32 позволяют кодировать до [math]2^<31>[/math] [math](2\ 147\ 483\ 648)[/math] кодовых позиций, было принято решение использовать лишь [math]1\ 112\ 064[/math] для совместимости с UTF-16. Впрочем, даже и этого на текущий момент более чем достаточно — в версии 6.0 используется чуть менее [math]110\ 000[/math] кодовых позиций ( [math]109\ 242[/math] графических и [math]273[/math] прочих символов).
Кодовое пространство разбито на [math]17[/math] плоскостей (англ. planes) по [math]2^<16>[/math] [math](65\ 536)[/math] символов. Нулевая плоскость называется базовой, в ней расположены символы наиболее употребительных письменностей. Первая плоскость используется, в основном, для исторических письменностей, вторая — для для редко используемых иероглифов китайского письма, третья зарезервирована для архаичных китайских иероглифов. Плоскости [math]15[/math] и [math]16[/math] выделены для частного употребления.
Плоскости Юникода | ||
---|---|---|
Плоскость | Название | Диапазон символов |
Plane 0 | Basic multilingual plane (BMP) | U+0000…U+FFFF |
Plane 1 | Supplementary multilingual plane (SMP) | U+10000…U+1FFFF |
Plane 2 | Supplementary ideographic plane (SIP) | U+20000…U+2FFFF |
Planes 3-13 | Unassigned | U+30000…U+DFFFF |
Plane 14 | Supplementary special-purpose plane (SSP) | U+E0000…U+EFFFF |
Planes 15-16 | Supplementary private use area (S PUA A/B) | U+F0000…U+10FFFF |
Модифицирующие символы [ править ]
Графические символы в Юникоде делятся на протяжённые и непротяжённые. Непротяжённые символы при отображении не занимают дополнительного места в строке. К примеру, к ним относятся знак ударения. Протяжённые и непротяжённые символы имеют собственные коды, но последние не могут встречаться самостоятельно. Протяжённые символы называются базовыми (англ. base characters), а непротяженные — модифицирующими (англ. combining characters). Например символ «Й» (U+0419) может быть представлен в виде базового символа «И» (U+0418) и модифицирующего символа « ̆» (U+0306).
Способы представления [ править ]
Юникод имеет несколько форм представления (англ. Unicode Transformation Format, UTF): UTF-8, UTF-16 (UTF-16BE, UTF-16LE) и UTF-32 (UTF-32BE, UTF-32LE). Была разработана также форма представления UTF-7 для передачи по семибитным каналам, но из-за несовместимости с ASCII она не получила распространения и не включена в стандарт.
UTF-8 [ править ]
Символы UTF-8 получаются из Unicode cледующим образом:
Unicode | UTF-8 | Представленные символы |
---|---|---|
0x00000000 — 0x0000007F | 0xxxxxxx | ASCII, в том числе английский алфавит, простейшие знаки препинания и арабские цифры |
0x00000080 — 0x000007FF | 110xxxxx 10xxxxxx | кириллица, расширенная латиница, арабский алфавит, армянский алфавит, греческий алфавит, еврейский алфавит и коптский алфавит; сирийское письмо, тана, нко; Международный фонетический алфавит; некоторые знаки препинания |
0x00000800 — 0x0000FFFF | 1110xxxx 10xxxxxx 10xxxxxx | все другие современные формы письменности, в том числе грузинский алфавит, индийское, китайское, корейское и японское письмо; сложные знаки препинания; математические и другие специальные символы |
0x00010000 — 0x001FFFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx | музыкальные символы, редкие китайские иероглифы, вымершие формы письменности |
111111xx | служебные символы c, d, e, f |
Несмотря на то, что UTF-8 позволяет указать один и тот же символ несколькими способами, только наиболее короткий из них правильный. Остальные формы, называемые overlong sequence, отвергаются по соображениям безопасности.
Принцип кодирования [ править ]
Правила записи кода одного символа в UTF-8 [ править ]
1. Если размер символа в кодировке UTF-8 = [math]1[/math] байт
Код имеет вид (0aaa aaaa), где «0» — просто ноль, остальные биты «a» — это код символа в кодировке ASCII;
2. Если размер символа в кодировке в UTF-8 [math]\gt 1[/math] байт (то есть от [math]2[/math] до [math]6[/math] ):
2.1 Первый байт содержит количество байт символа, закодированное в единичной системе счисления; 2.2 «0» — бит терминатор, означающий завершение кода размера 2.3 далее идут значащие байты кода, которые имеют вид (10xx xxxx), где «10» — биты признака продолжения, а «x» — значащие биты.
В общем случае варианты представления одного символа в кодировке UTF-8 выглядят так:
Определение длины кода в UTF-8 [ править ]
Количество байт UTF-8 | Количество значащих бит |
---|---|
[math]1[/math] | [math]7[/math] |
[math]2[/math] | [math]11[/math] |
[math]3[/math] | [math]16[/math] |
[math]4[/math] | [math]21[/math] |
[math]5[/math] | [math]26[/math] |
[math]6[/math] | [math]31[/math] |
[math]C = 7[/math] при [math]n=1[/math]
[math]C = n\cdot5+1[/math] при [math]n\gt 1[/math]
UTF-16 [ править ]
UTF-16LE и UTF-16BE [ править ]
Один символ кодировки UTF-16 представлен последовательностью двух байт или двух пар байт. Который из двух байт в словах идёт впереди, старший или младший, зависит от порядка байт. Подробнее об этом будет сказано ниже.
UTF-32 [ править ]
UTF-32 — один из способов кодирования символов из Юникод, использующий для кодирования любого символа ровно [math]32[/math] бита. Остальные кодировки, UTF-8 и UTF-16, используют для представления символов переменное число байт. Символ UTF-32 является прямым представлением его кодовой позиции (англ. code point).
Главный недостаток UTF-32 — это неэффективное использование пространства, так как для хранения символа используется четыре байта. Символы, лежащие за пределами нулевой (базовой) плоскости кодового пространства редко используются в большинстве текстов. Поэтому удвоение, в сравнении с UTF-16, занимаемого строками в UTF-32 пространства не оправдано.
Порядок байт [ править ]
В современной вычислительной технике и цифровых системах связи информация обычно представлена в виде последовательности байт. В том случае, если число не может быть представлено одним байтом, имеет значение в каком порядке байты записываются в памяти компьютера или передаются по линиям связи. Часто выбор порядка записи байт произволен и определяется только соглашениями.
[math]M = \sum_^
Варианты записи [ править ]
Порядок от старшего к младшему [ править ]
В этом же виде (используя представление в десятичной системе счисления) записываются числа индийско-арабскими цифрами в письменностях с порядком знаков слева направо (латиница, кириллица). Для письменностей с обратным порядком (арабская) та же запись числа воспринимается как «от младшего к старшему».
Порядок байт от старшего к младшему применяется во многих форматах файлов — например, PNG, FLV, EBML.
Порядок от младшего к старшему [ править ]
В противоположность порядку big-endian, соглашение little-endian поддерживают меньше кросс-платформенных протоколов и форматов данных; существенные исключения: USB, конфигурация PCI, таблица разделов GUID, рекомендации FidoNet.
Переключаемый порядок [ править ]
Многие процессоры могут работать и в порядке от младшего к старшему, и в обратном, например, ARM, PowerPC (но не PowerPC 970), DEC Alpha, MIPS, PA-RISC и IA-64. Обычно порядок байт выбирается программно во время инициализации операционной системы, но может быть выбран и аппаратно перемычками на материнской плате. В этом случае правильнее говорить о порядке байт операционной системы. Переключаемый порядок байт иногда называют англ. bi-endian.
Смешанный порядок [ править ]
Смешанный порядок байт (англ. middle-endian) иногда используется при работе с числами, длина которых превышает машинное слово. Число представляется последовательностью машинных слов, которые записываются в формате, естественном для данной архитектуры, но сами слова следуют в обратном порядке.
В процессорах VAX и ARM используется смешанное представление для длинных вещественных чисел.
Различия [ править ]
Для записи длинных чисел (чисел, длина которых существенно превышает разрядность машины) обычно предпочтительнее порядок слов в числе little-endian (поскольку арифметические операции над длинными числами производятся от младших разрядов к старшим). Порядок байт в слове — обычный для данной архитектуры.
Маркер последовательности байт [ править ]
Для определения формата представления Юникода в начало текстового файла записывается сигнатура — символ U+FEFF (неразрывный пробел с нулевой шириной), также именуемый маркером последовательности байт (англ. byte order mark (BOM)). Это позволяет различать UTF-16LE и UTF-16BE, поскольку символа U+FFFE не существует.
Кодирование | Представление (Шестнадцатеричное) |
---|---|
UTF-8 | EF BB BF |
UTF-16 (BE) | FE FF |
UTF-16 (LE) | FF FE |
UTF-32 (BE) | 00 00 FE FF |
UTF-32 (LE) | FF FE 00 00 |
В кодировке UTF-8, наличие BOM не является существенным, поскольку, нет альтернативной последовательности байт. Когда BOM используется на страницах или редакторах для контента закодированного в UTF-8, иногда он может представить пробелы или короткие последовательности символов, имеющие странный вид (такие как ). Именно поэтому, при наличии выбора, для совместимости, как правило, лучше упустить BOM в UTF-8 контенте.Однако BOM могут еще встречаться в тексте закодированном в UTF-8, как побочный продукт перекодирования или потому, что он был добавлен редактором. В этом случае BOM часто называют подписью UTF-8.
Когда символ закодирован в UTF-16, его [math]2[/math] или [math]4[/math] байта можно упорядочить двумя разными способами (little-endian или big-endian). Изображение справа показывает это. Byte order mark указывает, какой порядок используется, так что приложения могут немедленно расшифровать контент. UTF-16 контент должен всегда начинатся с BOM.
BOM также используется для текста обозначенного как UTF-32. Аналогично UTF-16 существует два варианта четырёхбайтной кодировки — UTF-32BE и UTF-32LE. К сожалению, этот способ не позволяет надёжно различать UTF-16LE и UTF-32LE, поскольку символ U+0000 допускается Юникодом
Проблемы Юникода [ править ]
В Юникоде английское «a» и польское «a» — один и тот же символ. Точно так же одним символом (но отличающимся от «a» латинского) считаются русское «а» и сербское «а». Такой принцип кодирования не универсален; по-видимому, решения «на все случаи жизни» вообще не может существовать.