Лекция
Привет, Вы узнаете о том , что такое кодировки символов utf- windows-125 другие распознавание ошибок, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое кодировки символов utf- windows-125 другие распознавание ошибок , настоятельно рекомендую прочитать все из категории Информатика.
Кодировки символов | ||
---|---|---|
Основы | алфавит • текст ( файл • данные ) • набор символов • конверсия | |
Исторические кодировки | Докомп.: | семафорная (Макарова) • Морзе • Бодо • МТК-2 |
Комп.: | 6-битная • УПП • RADIX-50 • EBCDIC ( ДКОИ-8 ) • КОИ-7 • ISO 646 | |
современное 8-битное представление |
символы | ASCII ( управляющие • печатные ) • не-ASCII ( псевдографика ) |
8-битныекод.стр. | Кириллица: КОИ-8 • Основная кодировка • MacCyrillic | |
ISO 8859 | 1 (лат.) • 2 • 3 • 4 • 5 (кир.) • 6 • 7 • 8 • 9 • 10 • 11 • 12 • 13 • 14 • 15 (€) • 16 | |
Windows | 1250 • 1251 (кир.) • 1252 • 1253 • 1254 • 1255 • 1256 • 1257 • 1258 • WGL4 | |
IBM & DOS | 437 • 850 • 852 • 855 • 866 «альт.» • МИК • НИИ ЭВМ | |
Многобайтные | Традиционные | DBCS ( GB2312 ) • HTML |
Unicode | UTF-32 • UTF-16 • UTF-8 • список символов ( кириллица ) | |
Связанные темы | интерфейс пользователя • раскладка клавиатуры • локаль • перевод строки • шрифт • транслит • нестандартные шрифты | |
Утилиты |
iconv • recode
|
UTF-8 (от англ. Unicode Transformation Format, 8-bit — «формат преобразования Юникода, 8-битный») — одна из общепринятых и стандартизированных кодировок текста, которая позволяет хранить символы Юникода используя переменное количество байт (от 1 до 6).
Стандарт UTF-8 официально закреплен в документах RFC 3629 и ISO/IEC 10646 Annex D. Кодировка нашла широкое применение в UNIX-подобных операционных системах и веб-пространстве[1]. Сам же формат UTF-8 был изобретен 2 сентября 1992 года Кеном Томпсоном и Робом Пайком и реализован в Plan 9.[2] В качествеBOM использует последовательность байт EF16, BB16, BF16 (что у нее самой является трехбайтовой реализацией символа FEFF16).
Одним из преимуществ является совместимость с ASCII — любые их 7-битные символы отображаются как есть, а остальные выдают пользователю мусор (шум). Поэтому в случае, если латинские буквы и простейшие знаки препинания (включая пробел) занимают существенный объем текста, UTF-8 дает выигрыш по объему по сравнению с UTF-16.[3][4]
Для номеров с U+0000 по U+007F кодировка UTF-8 полностью соответствует 7-битному US-ASCII c 0 в старшем бите и занимает один байт.
Алгоритм кодирования в UTF-8 стандартизирован в RFC 3629 и состоит из 3-х пунктов:
1. Определить количество октетов (байт), требуемых для кодируемого номера символа в соответствии с таблицей:
Диапазон символов | Количество байт |
---|---|
00000000-0000007F |
1 |
00000080-000007FF |
2 |
00000800-0000FFFF |
3 |
00010000-001FFFFF |
4 |
00200000-03FFFFFF |
5 |
04000000-7FFFFFFF |
6 |
2. Подготовить старшие биты первого октета (0xxxxxx для одного октета, 110xxxxx - два, 1110xxxxx - три и т.д.). Для остальных октетов два старших бита равны 10 (10xxxxxx).
Количество байт | Значащих бит | Первый байт | Шаблон полностью |
---|---|---|---|
1 | 7 | 0xxxxxxx |
0xxxxxxx |
2 | 11 | 110xxxxx |
110xxxxx 10xxxxxx |
3 | 16 | 1110xxxx |
1110xxxx 10xxxxxx 10xxxxxx |
4 | 21 | 11110xxx |
11110xxx 10xxxxxx 10xxxxxx 10xxxxxx |
5 | 26 | 111110xx |
111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx |
6 | 31 | 1111110x |
1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx |
3. Заполнить оставшиеся биты (в п.2 обозначены x) в октетах номером символа Юникода, выраженном в двоичном виде. Начать с младших битов номера символа, поставив их в младшие биты последнего октета кода. И так далее, пока все биты номера символа не будут перенесены в свободные биты октетов.
Пример
Код BOM для UTF-8 = EF BB BF(16)
= 1110 1111 1011 1011 1011 1111(2)
1 байт | 2 байт | 3 байт | |
---|---|---|---|
Шаблон | 1110 xxxx |
10xx xxxx |
10xx xxxx |
BIN | 1110 1111 |
1011 1011 |
1011 1111 |
HEX | EF |
BB |
BF |
В таблице ниже значения представлены в шестнадцатеричной системе счисления. На практике для каждого значения выбирается единственное верное представление по алгоритму стандартизированному в RFC 3629 (с минимальной длиной байт, большие — не разрешены; и представлены для наглядности и тестов кодировщиков).
Код символа | Имя символа | 1 байт | 2 байта | 3 байта | 4 байта | 5 байт | 6 байт |
---|---|---|---|---|---|---|---|
0000 |
NUL | 00 |
C0 80 |
E0 80 80 |
F0 80 80 80 |
F8 80 80 80 80 |
FC 80 80 80 80 80 |
0073 |
Малая латинская s | 73 |
C1 B3 |
E0 81 B3 |
F0 80 81 B3 |
F8 80 80 81 B3 |
FC 80 80 80 81 B3 |
041A |
Большая кириллическая К | D0 9A |
E0 90 9A |
F0 80 90 9A |
F8 80 80 90 9A |
FC 80 80 80 90 9A |
|
0BF5 |
Символ года на тамильском ௵ | E0 AF B5 |
F0 80 AF B5 |
F8 80 80 AF B5 |
FC 80 80 80 AF B5 |
||
26218 |
Китайский иероглиф |
Примеры ниже приведены для быстрой ориентации в случаях некорректного декодирования текста (так называемые кракозябры[en]).
Так выглядит фраза «Человек сейчас увидит лишь то, что ожидает увидеть.» если она воспринята декодировщиком в кодировке Windows-1251, а не UTF-8:
ЧеР"овек сейчас СѓРІРеРґРеС‚ Р"Решь то, что РѕР¶Редает СѓРІРедеть.
Фраза « Человек сейчас увидит лишь то, что ожидает увидеть.» при двойном кодировании UTF-8 в UTF-8:
ЧеРВ"РѕРІРµРС" СЃРµРв"-час РЎС"РІРёРґРёС‚ Р В"ишь то, что ожидает РЎС"видеть.
Самосинхронизацию в UTF-8 можно рассмотреть когда вашей программе подаются случайные байты и вам нужно определить начало первого символа. Первичным признаком является сброшенный старший бит байта — это ASCII-символ. Если же он установлен, то пропускаем те байты, у которых сброшен бит перед старшим. В остальных случаях можно продолжать посимвольное поточное раскодирование.
UTF-8 обладает свойством самосинхронизации при обработке 8-битными байтами. Альтернативной UTF-8 является кодировка UTF-16, которая уже обрабатывается 16-битными словами. Возможно возникновение сомнения что UTF-16 не является самосинхронизирующейся. В настоящий момент передача данных в компьютере в подавляющем большинстве производится цельными октетами — 8 бит или ничего (см. IPv4, IPv6, SATA для современной аппаратуры и ATA с PATA для недавней). В данных условиях UTF-8 имеет преимущество в характеристике самосинхронизации перед UTF-16, если речь касается аппаратной передачи данных или работы с байтовым потоком ( чтение Unicode-данных с произвольной позиции). Если же работа осуществляется в оперативной памяти одной машины, то UTF-16 так же является самосинхронизирующейся (если аппаратура способна подавать цельные 16-битные слова).
Windows-1251 — набор символов и кодировка, являющаяся стандартной 8-битной кодировкой для русских версий Microsoft Windows до 10-й версии. В прошлом пользовалась довольно большой популярностью. Была создана на базе кодировок, использовавшихся в ранних «самопальных» русификаторах Windows в 1990—1991гг. совместно представителями «Параграфа», « Диалога » и российского отделения Microsoft. Первоначальный вариант кодировки сильно отличался от представленного ниже в таблице (в частности, там было значительное число «белых пятен»).
В современных приложениях отдается предпочтение Юникод (UTF-8). Лишь для 1.9% всех веб-страниц используется Windows-1251 на февраль 2016.[1]
Windows-1251 как и KOI8-R выгодно отличается от других 8‑битных кириллических кодировок (таких как CP866 и ISO 8859-5) наличием практически всех символов, использующихся в русской типографике для обычного текста (отсутствует только значок ударения); Она также содержит все символы для других славянских языков: украинского, белорусского, сербского, македонского и болгарского.
Windows-1251 имеет два недостатка:
-1
, в дополнительном коде длиной 8 бит представляющееся числом 255
, часто используется в программировании как специальное значение).В заключение, эта статья об кодировки символов utf- windows-125 другие распознавание ошибок подчеркивает важность того что вы тут, расширяете ваше сознание, знания, навыки и умения. Надеюсь, что теперь ты понял что такое кодировки символов utf- windows-125 другие распознавание ошибок и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Информатика
Комментарии
Оставить комментарий
Информатика
Термины: Информатика