0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<ul><li><a>Кодирование и декодирование - определения</a></li>
1
<ul><li><a>Кодирование и декодирование - определения</a></li>
2
<li><a> Ключевые термины и определения</a></li>
2
<li><a> Ключевые термины и определения</a></li>
3
<li><a>История возникновения</a></li>
3
<li><a>История возникновения</a></li>
4
<li><a>Разновидности</a><ul><li><a>ASCII - базовый тип</a><ul><li><a>Расширенные ASCII</a></li>
4
<li><a>Разновидности</a><ul><li><a>ASCII - базовый тип</a><ul><li><a>Расширенные ASCII</a></li>
5
</ul></li>
5
</ul></li>
6
<li><a>Windows 1251</a></li>
6
<li><a>Windows 1251</a></li>
7
</ul></li>
7
</ul></li>
8
<li><a>Unicode</a><ul><li><a>UTF-32</a></li>
8
<li><a>Unicode</a><ul><li><a>UTF-32</a></li>
9
<li><a>UTF-16</a></li>
9
<li><a>UTF-16</a></li>
10
<li><a>UTF8</a><ul><li><a>Как шифровать</a></li>
10
<li><a>UTF8</a><ul><li><a>Как шифровать</a></li>
11
<li><a>Как декодировать</a></li>
11
<li><a>Как декодировать</a></li>
12
<li><a>Возможные ошибки</a></li>
12
<li><a>Возможные ошибки</a></li>
13
</ul></li>
13
</ul></li>
14
</ul></li>
14
</ul></li>
15
</ul><p>В процессе работы с информационными технологиями, разработки программного обеспечения, а также системного администрирования специалистам приходится сталкиваться с весьма сложными понятиями и операциями. Одним из наиболее важных моментов при обработке данных является кодирование. Этот момент дополняется операцией декодирования, без которой не получится понять, "что написано" в документе или файле.</p>
15
</ul><p>В процессе работы с информационными технологиями, разработки программного обеспечения, а также системного администрирования специалистам приходится сталкиваться с весьма сложными понятиями и операциями. Одним из наиболее важных моментов при обработке данных является кодирование. Этот момент дополняется операцией декодирования, без которой не получится понять, "что написано" в документе или файле.</p>
16
<p>Далее предстоит более подробно рассмотреть вопросы, связанные с кодированием информации, кодировками в операционных системах и декодированием. Опубликованные сведения подойдут в равной мере как новичкам, так и более опытным специалистам. Они ориентированы на широкую публику. Покажутся полезными администраторам, разработчикам и "рядовым" пользователям в равной степени.</p>
16
<p>Далее предстоит более подробно рассмотреть вопросы, связанные с кодированием информации, кодировками в операционных системах и декодированием. Опубликованные сведения подойдут в равной мере как новичкам, так и более опытным специалистам. Они ориентированы на широкую публику. Покажутся полезными администраторам, разработчикам и "рядовым" пользователям в равной степени.</p>
17
<h2>Кодирование и декодирование - определения</h2>
17
<h2>Кодирование и декодирование - определения</h2>
18
<p>Кодирование - процедура, помогающая преобразовывать символы, сигналы и данные из привычной человеку формы в вид, "понятный" электронному оборудованию. Прием, благодаря которому можно подготовить информацию для дальнейшей обработки, передачи, хранения и иных манипуляций.</p>
18
<p>Кодирование - процедура, помогающая преобразовывать символы, сигналы и данные из привычной человеку формы в вид, "понятный" электронному оборудованию. Прием, благодаря которому можно подготовить информацию для дальнейшей обработки, передачи, хранения и иных манипуляций.</p>
19
<p>При кодировании символов на выходе будут получаться записи, состоящие из нулей и единиц. Данный прием используется в двоичных системах.</p>
19
<p>При кодировании символов на выходе будут получаться записи, состоящие из нулей и единиц. Данный прием используется в двоичных системах.</p>
20
<p>Исторически сложилось так, что каждый элемент, отображаемый на экране, может быть выражен несколькими способами. За соответствующий момент отвечают таблицы. Они зависят от типа используемой на устройстве операционной системы.</p>
20
<p>Исторически сложилось так, что каждый элемент, отображаемый на экране, может быть выражен несколькими способами. За соответствующий момент отвечают таблицы. Они зависят от типа используемой на устройстве операционной системы.</p>
21
<p>Декодирование - процедура, помогающая "расшифровать" понятный устройству код и представить его в ясной и привычной пользователю форме. Выполняется соответствующий прием в основном при помощи специальных приложений. Они называются декодировщиками. Небольшой текст можно "расшифровать" самостоятельно, зная особенности и принципы кодирования данных.</p>
21
<p>Декодирование - процедура, помогающая "расшифровать" понятный устройству код и представить его в ясной и привычной пользователю форме. Выполняется соответствующий прием в основном при помощи специальных приложений. Они называются декодировщиками. Небольшой текст можно "расшифровать" самостоятельно, зная особенности и принципы кодирования данных.</p>
22
<h2> Ключевые термины и определения</h2>
22
<h2> Ключевые термины и определения</h2>
23
<p>Если пользователю хочется выяснить, как происходит преобразование символов в "понятный" компьютеру вид и обратно, сначала необходимо запомнить несколько определений. Они помогут быстрее разобраться в рассматриваемой области:</p>
23
<p>Если пользователю хочется выяснить, как происходит преобразование символов в "понятный" компьютеру вид и обратно, сначала необходимо запомнить несколько определений. Они помогут быстрее разобраться в рассматриваемой области:</p>
24
<ol><li>Кодирование - трансформация информации из одной формы в другую, более удобную для оперирования, хранения и обработки.</li>
24
<ol><li>Кодирование - трансформация информации из одной формы в другую, более удобную для оперирования, хранения и обработки.</li>
25
<li>Системы кодирования - комплекс правил и закономерностей, обозначения символов/электронных материалов в виде того или иного формата кода.</li>
25
<li>Системы кодирования - комплекс правил и закономерностей, обозначения символов/электронных материалов в виде того или иного формата кода.</li>
26
<li>Код - система знаков и иных компонентов, необходимых для передачи информации. В основном представлены 0 и 1.</li>
26
<li>Код - система знаков и иных компонентов, необходимых для передачи информации. В основном представлены 0 и 1.</li>
27
<li>Двоичный код - метод хранения и отображения символов с применением всех двух знаков: нулей и единиц. Применяется преимущественно в вычислительной технике и ЭВМ.</li>
27
<li>Двоичный код - метод хранения и отображения символов с применением всех двух знаков: нулей и единиц. Применяется преимущественно в вычислительной технике и ЭВМ.</li>
28
<li>Бит - элемент кодирования информации. В двоичной системе - 0 или 1.</li>
28
<li>Бит - элемент кодирования информации. В двоичной системе - 0 или 1.</li>
29
<li>Декодирование - обратное кодированию преобразование символов. При помощи такого приема пользователи смогут "расшифровать" написанное устройством и отобразить результат в "привычной" форме.</li>
29
<li>Декодирование - обратное кодированию преобразование символов. При помощи такого приема пользователи смогут "расшифровать" написанное устройством и отобразить результат в "привычной" форме.</li>
30
<li>Символ - минимальная единица текстов с семантическим значением.</li>
30
<li>Символ - минимальная единица текстов с семантическим значением.</li>
31
<li>Символьный набор - набор, в которым каждый элемент соответствует своему уникальному идентификатору.</li>
31
<li>Символьный набор - набор, в которым каждый элемент соответствует своему уникальному идентификатору.</li>
32
<li>Кодовая точка - любое значение, которое допускается символьной таблицей.</li>
32
<li>Кодовая точка - любое значение, которое допускается символьной таблицей.</li>
33
<li>Единица кодирования - "размер слова" схемы кодирования (8-бит, 16-бит и так далее).</li>
33
<li>Единица кодирования - "размер слова" схемы кодирования (8-бит, 16-бит и так далее).</li>
34
</ol><p>Указанные термины пригодятся всем, кто заинтересован в символьных преобразованиях. Главное - разобраться с видами кодировок и их особенностями.</p>
34
</ol><p>Указанные термины пригодятся всем, кто заинтересован в символьных преобразованиях. Главное - разобраться с видами кодировок и их особенностями.</p>
35
<h2>История возникновения</h2>
35
<h2>История возникновения</h2>
36
<p>Кодирование и декодирование появилось относительно недавно. В 1960-х годах ЭВМ столкнулись с такой особенностью как несовместимость. Подобные неполадки возникали не только на разном оборудовании, но и на машинах одного предприятия-производителя. Соответствующий момент сказался на универсальности. Для каждой отдельно взятой задачи из раза в раз требовалось создавать отдельную таблицу символов. С ее помощью - осуществлять ввод и вывод информации.</p>
36
<p>Кодирование и декодирование появилось относительно недавно. В 1960-х годах ЭВМ столкнулись с такой особенностью как несовместимость. Подобные неполадки возникали не только на разном оборудовании, но и на машинах одного предприятия-производителя. Соответствующий момент сказался на универсальности. Для каждой отдельно взятой задачи из раза в раз требовалось создавать отдельную таблицу символов. С ее помощью - осуществлять ввод и вывод информации.</p>
37
<p>Еще в 1958 году начали выпускаться первые компьютерные системы. В те времена они включали в себя сети с несколькими устройствами. Пример - SAGE. Она использовалась для объединения станций Канады и США. Результаты расчетов в ней разрешалось задействовать на любом оборудовании, подключенном к этой самой сети. Для достижения описанного результата были сформированы первые единые таблицы символов (кодов).</p>
37
<p>Еще в 1958 году начали выпускаться первые компьютерные системы. В те времена они включали в себя сети с несколькими устройствами. Пример - SAGE. Она использовалась для объединения станций Канады и США. Результаты расчетов в ней разрешалось задействовать на любом оборудовании, подключенном к этой самой сети. Для достижения описанного результата были сформированы первые единые таблицы символов (кодов).</p>
38
<p>Уже в 1962 году IBM начала развивать универсальные компьютеры. В 1965 году в свет вышла System/360. Она включила в себя 6 моделей из совместимых модулей. Каждый имел свою производительность и стоимость, благодаря чему потребители получили свободу выбора. ЭВМ стали вливаться в обыденную жизнь. Это привело к тому, что разработка программного обеспечения потребовала единых стандартов распознавания символов.</p>
38
<p>Уже в 1962 году IBM начала развивать универсальные компьютеры. В 1965 году в свет вышла System/360. Она включила в себя 6 моделей из совместимых модулей. Каждый имел свою производительность и стоимость, благодаря чему потребители получили свободу выбора. ЭВМ стали вливаться в обыденную жизнь. Это привело к тому, что разработка программного обеспечения потребовала единых стандартов распознавания символов.</p>
39
<h2>Разновидности</h2>
39
<h2>Разновидности</h2>
40
<p>Символы можно "зашифровывать" несколькими способами. Все зависит от того, какой операционной системой на данный момент пользуется клиент. Если на двух устройствах задействованы разные таблицы символов, существует вероятность появления при декодировании непонятных графических интерпретаций - "кракозябр".</p>
40
<p>Символы можно "зашифровывать" несколькими способами. Все зависит от того, какой операционной системой на данный момент пользуется клиент. Если на двух устройствах задействованы разные таблицы символов, существует вероятность появления при декодировании непонятных графических интерпретаций - "кракозябр".</p>
41
<p>Основными кодировками в IT в 21 веке выступают следующие варианты:</p>
41
<p>Основными кодировками в IT в 21 веке выступают следующие варианты:</p>
42
<ul><li>ASCII;</li>
42
<ul><li>ASCII;</li>
43
<li>Unicode (UTF-8 /16/32);</li>
43
<li>Unicode (UTF-8 /16/32);</li>
44
<li>KOI8-R;</li>
44
<li>KOI8-R;</li>
45
<li>CP866;</li>
45
<li>CP866;</li>
46
<li>Windows 251.</li>
46
<li>Windows 251.</li>
47
</ul><p>В современных компьютерах чаще всего используются ASCII и Юникод (UTF-8 /16). С ними проще всего работать. Данные наборы символов умеют распознавать практически все алфавиты, включая русские буквы (кириллицу).</p>
47
</ul><p>В современных компьютерах чаще всего используются ASCII и Юникод (UTF-8 /16). С ними проще всего работать. Данные наборы символов умеют распознавать практически все алфавиты, включая русские буквы (кириллицу).</p>
48
<h3>ASCII - базовый тип</h3>
48
<h3>ASCII - базовый тип</h3>
49
<p>Далее каждый "набор символов" будет изучен более подробно. Особое внимание будет уделено кодировке UTF. ASCII - это "базовый набор символов". Он используется при работе основной массы устройств. Здесь первые 128 символов - наиболее распространенные. Они поддерживают:</p>
49
<p>Далее каждый "набор символов" будет изучен более подробно. Особое внимание будет уделено кодировке UTF. ASCII - это "базовый набор символов". Он используется при работе основной массы устройств. Здесь первые 128 символов - наиболее распространенные. Они поддерживают:</p>
50
<ul><li>арабские буквы;</li>
50
<ul><li>арабские буквы;</li>
51
<li>знаки препинания;</li>
51
<li>знаки препинания;</li>
52
<li>служебные элементы;</li>
52
<li>служебные элементы;</li>
53
<li>латинские буквы.</li>
53
<li>латинские буквы.</li>
54
</ul><p>При использовании ASCII задействован всего один байт. Такой подход привел к тому, что у упомянутого набора символов появились более "обширные" версии. Классическая форма представления ASCII не предусматривают работу с русскими символами, а также с кириллицей.</p>
54
</ul><p>При использовании ASCII задействован всего один байт. Такой подход привел к тому, что у упомянутого набора символов появились более "обширные" версии. Классическая форма представления ASCII не предусматривают работу с русскими символами, а также с кириллицей.</p>
55
<p>Выше - стандартные элементы ASCII. Они значительно отличаются от UTF-8 и других символьных наборов.</p>
55
<p>Выше - стандартные элементы ASCII. Они значительно отличаются от UTF-8 и других символьных наборов.</p>
56
<h4><em>Расширенные ASCII</em></h4>
56
<h4><em>Расширенные ASCII</em></h4>
57
<p>ASCII - это основа всех кодировок, которые известны в 21 веке. В "классической" ее форме поддерживаются 128 элементов. В расширенной - 256. Такой подход позволил добавлять новые алфавиты и символьные записи для отображения на экранах в будущем.</p>
57
<p>ASCII - это основа всех кодировок, которые известны в 21 веке. В "классической" ее форме поддерживаются 128 элементов. В расширенной - 256. Такой подход позволил добавлять новые алфавиты и символьные записи для отображения на экранах в будущем.</p>
58
<p>Первый вариант расширенного ASCII - CP866. Она поддерживает латиницу и кириллицу. Верхняя часть совпадает с ASCII, нижняя - дает перспективы "шифрования" кириллицы и некоторых специальных компонентов. Таких, которых нет на клавиатуре.</p>
58
<p>Первый вариант расширенного ASCII - CP866. Она поддерживает латиницу и кириллицу. Верхняя часть совпадает с ASCII, нижняя - дает перспективы "шифрования" кириллицы и некоторых специальных компонентов. Таких, которых нет на клавиатуре.</p>
59
<p>Еще один расширенный вариант - KOI8-R. Не стоит путать его с UTF-8. Второй расширенный вариант ASCII поддерживает "трансформацию" символов одним байтов. В KOI8-R буквы русского языка расположены не "по алфавиту". Здесь они размещаются по созвучию с кириллицей.</p>
59
<p>Еще один расширенный вариант - KOI8-R. Не стоит путать его с UTF-8. Второй расширенный вариант ASCII поддерживает "трансформацию" символов одним байтов. В KOI8-R буквы русского языка расположены не "по алфавиту". Здесь они размещаются по созвучию с кириллицей.</p>
60
<h3>Windows 1251</h3>
60
<h3>Windows 1251</h3>
61
<p>Развитие систем "шифрования" символов напрямую связывается с совершенствованием графических компонентов в операционных системах. Необходимость в псевдографике пропала. Это привело к тому, что возникли группы, ранее выступающие в виде расширенных ASCII, но с большим уровнем совершенности. В них отсутствовали псевдографические компоненты. Они стали называться ANSI. Позже появился Юникод и UTF 8.</p>
61
<p>Развитие систем "шифрования" символов напрямую связывается с совершенствованием графических компонентов в операционных системах. Необходимость в псевдографике пропала. Это привело к тому, что возникли группы, ранее выступающие в виде расширенных ASCII, но с большим уровнем совершенности. В них отсутствовали псевдографические компоненты. Они стали называться ANSI. Позже появился Юникод и UTF 8.</p>
62
<p>Наиболее распространенный вариант ANSI - это Windows 1251. Он:</p>
62
<p>Наиболее распространенный вариант ANSI - это Windows 1251. Он:</p>
63
<ul><li>вместо псевдографики предлагает недостающие кириллические компоненты и русскую топографику;</li>
63
<ul><li>вместо псевдографики предлагает недостающие кириллические компоненты и русскую топографику;</li>
64
<li>не имеет знака ударения;</li>
64
<li>не имеет знака ударения;</li>
65
<li>первые 32 составляющие - это операции, пробел и перевод строки;</li>
65
<li>первые 32 составляющие - это операции, пробел и перевод строки;</li>
66
<li>до 127 компонента будут располагаться: латинский алфавит, цифры, знаки математических действий и препинания;</li>
66
<li>до 127 компонента будут располагаться: латинский алфавит, цифры, знаки математических действий и препинания;</li>
67
<li>оставшиеся "пространства" отводятся для национальных алфавитов.</li>
67
<li>оставшиеся "пространства" отводятся для национальных алфавитов.</li>
68
</ul><p>Выше - часть Windows 1251. Соответствующий фрагмент отображает кириллические компоненты и другие составляющие.</p>
68
</ul><p>Выше - часть Windows 1251. Соответствующий фрагмент отображает кириллические компоненты и другие составляющие.</p>
69
<h2>Unicode</h2>
69
<h2>Unicode</h2>
70
<p>Юникод - символьная таблица, которая пользуется огромным спросом в современных компьютерах. Именно здесь встречается UTF-8 и другие варианты отображения данных. Unicode выступает универсальным средством "трансформации" электронных материалов. В основном распространен в Сети. Основан в 1991 году. Unicode - официальный стандарт, который включает в себя практически все знаки существующих на письме языков.</p>
70
<p>Юникод - символьная таблица, которая пользуется огромным спросом в современных компьютерах. Именно здесь встречается UTF-8 и другие варианты отображения данных. Unicode выступает универсальным средством "трансформации" электронных материалов. В основном распространен в Сети. Основан в 1991 году. Unicode - официальный стандарт, который включает в себя практически все знаки существующих на письме языков.</p>
71
<p>Юникод - многоязычный стандарт. Он опирается на ASCII. Включает в себя не только кириллицу, но и азиатские иероглифы. Поддерживает несколько стандартов, среди которых обязательно выделяется UTF-8.</p>
71
<p>Юникод - многоязычный стандарт. Он опирается на ASCII. Включает в себя не только кириллицу, но и азиатские иероглифы. Поддерживает несколько стандартов, среди которых обязательно выделяется UTF-8.</p>
72
<h3>UTF-32</h3>
72
<h3>UTF-32</h3>
73
<p>Самый первый вариант кодировки - UTF 32. Для того, чтобы закодировать один компонент, здесь используются 32 бита (или 4 байта). Соответствующее явление привело к увеличению "веса" одного элемента по сравнению с ASCII в 4 раза.</p>
73
<p>Самый первый вариант кодировки - UTF 32. Для того, чтобы закодировать один компонент, здесь используются 32 бита (или 4 байта). Соответствующее явление привело к увеличению "веса" одного элемента по сравнению с ASCII в 4 раза.</p>
74
<p>В UTF-32 все компоненты поддерживают непосредственную индексацию. Пользователь сможет по номеру отыскать именно тот элемент, который его заинтересовал. Такой прием привел к тому, что замена символьных данных стала ускоряться.</p>
74
<p>В UTF-32 все компоненты поддерживают непосредственную индексацию. Пользователь сможет по номеру отыскать именно тот элемент, который его заинтересовал. Такой прием привел к тому, что замена символьных данных стала ускоряться.</p>
75
<h3>UTF-16</h3>
75
<h3>UTF-16</h3>
76
<p>До появления UTF-8 Юникод предложил пользователям еще один стандарт - UTF-16. Он является более совершенным, чем "предшественник". Выступает в качестве базового пространства для всех печатных компонентов. Кириллица здесь тоже поддерживается, как и другие алфавиты.</p>
76
<p>До появления UTF-8 Юникод предложил пользователям еще один стандарт - UTF-16. Он является более совершенным, чем "предшественник". Выступает в качестве базового пространства для всех печатных компонентов. Кириллица здесь тоже поддерживается, как и другие алфавиты.</p>
77
<p>Соответствующий стандарт предлагает отображение не 0 и 1, а в 16-ричной системе счислений. Посмотреть отображение компонента в Юникоде при помощи UTF-16 можно за счет раздела "Таблица символов" в Windows. Она располагается в меню "Служебные".</p>
77
<p>Соответствующий стандарт предлагает отображение не 0 и 1, а в 16-ричной системе счислений. Посмотреть отображение компонента в Юникоде при помощи UTF-16 можно за счет раздела "Таблица символов" в Windows. Она располагается в меню "Служебные".</p>
78
<p>В отличие от UTF-8 и других стандартов, UTF-16 позволяет работать с 65 536 компонентами. Это - базовое значение для Юникода. В расширенном пространстве поддерживаются до миллиона дополнительных записей.</p>
78
<p>В отличие от UTF-8 и других стандартов, UTF-16 позволяет работать с 65 536 компонентами. Это - базовое значение для Юникода. В расширенном пространстве поддерживаются до миллиона дополнительных записей.</p>
79
<p>По сравнению с ASCII-стандартом, исходный документ при "трансформации" будет увеличиваться не в 4, а уже в 2 раза. Явление связано с тем, что для одного кодового компонента требуется 2 байта или 16 бит.</p>
79
<p>По сравнению с ASCII-стандартом, исходный документ при "трансформации" будет увеличиваться не в 4, а уже в 2 раза. Явление связано с тем, что для одного кодового компонента требуется 2 байта или 16 бит.</p>
80
<h3>UTF8</h3>
80
<h3>UTF8</h3>
81
<p>Кодировка UTF совершенствуется. На данный момент Юникод поддерживает новый стандарт. Он называется UTF-8. Соответствующий "сборник" тоже поддерживает кириллические символы. Несмотря на то, что в названии стандарта UTF-8 стоит 8-ка, длина получившейся записи меняется. Она может быть от 1 до 6 байт. В основном UTF-8 использует компоненты, поддерживающие "объем" до 4 байт. Латиница "зашифровывается" здесь точно также, как в ASCII - 1 байтом.</p>
81
<p>Кодировка UTF совершенствуется. На данный момент Юникод поддерживает новый стандарт. Он называется UTF-8. Соответствующий "сборник" тоже поддерживает кириллические символы. Несмотря на то, что в названии стандарта UTF-8 стоит 8-ка, длина получившейся записи меняется. Она может быть от 1 до 6 байт. В основном UTF-8 использует компоненты, поддерживающие "объем" до 4 байт. Латиница "зашифровывается" здесь точно также, как в ASCII - 1 байтом.</p>
82
<p>UTF-8 поддерживает 2 байта для русских букв, для грузинских - 3. Соответствующий стандарт допускает печать не только букв. В UTF-8 поддерживаются смайлики. Этот стандарт хорошо обрабатывается даже системами, которые не ориентированы изначально на Юникод.</p>
82
<p>UTF-8 поддерживает 2 байта для русских букв, для грузинских - 3. Соответствующий стандарт допускает печать не только букв. В UTF-8 поддерживаются смайлики. Этот стандарт хорошо обрабатывается даже системами, которые не ориентированы изначально на Юникод.</p>
83
<p>На данный момент UTF-8 широко распространена в веб-пространствах. Она активно применяется в UNIX-подобных операционных системах. UTF-8 появился в 1992 году, в самом начале сентября. В Windows он имеет идентификатор 65001.</p>
83
<p>На данный момент UTF-8 широко распространена в веб-пространствах. Она активно применяется в UNIX-подобных операционных системах. UTF-8 появился в 1992 году, в самом начале сентября. В Windows он имеет идентификатор 65001.</p>
84
<h4><em>Как шифровать</em></h4>
84
<h4><em>Как шифровать</em></h4>
85
<p>UTF-8 encoding - процедура не самая простая. Сначала необходимо выяснить, как "зашифровать" запись в рассматриваемом стандарте. Операция включает в себя несколько этапов:</p>
85
<p>UTF-8 encoding - процедура не самая простая. Сначала необходимо выяснить, как "зашифровать" запись в рассматриваемом стандарте. Операция включает в себя несколько этапов:</p>
86
<ol><li>Определение количества байтов, необходимых для "шифрования". Номер элемента берется из стандарта Юникода: .</li>
86
<ol><li>Определение количества байтов, необходимых для "шифрования". Номер элемента берется из стандарта Юникода: .</li>
87
<li>Установить старшие биты первого октета в соответствие с необходимым количеством октетов на первом этапе: 0xxxxx - 1 октет, 110 - два, 1110 - три, 11110 - четыре октета.</li>
87
<li>Установить старшие биты первого октета в соответствие с необходимым количеством октетов на первом этапе: 0xxxxx - 1 октет, 110 - два, 1110 - три, 11110 - четыре октета.</li>
88
<li>Установить значащие биты октетов в соответствие с номером символа Юникода, представленном в двоичной форме. Заполнение производится с младших битов в UTF-8. Свободные биты первого октета заполняются нулями.</li>
88
<li>Установить значащие биты октетов в соответствие с номером символа Юникода, представленном в двоичной форме. Заполнение производится с младших битов в UTF-8. Свободные биты первого октета заполняются нулями.</li>
89
</ol><p>Если в процессе работы с UTF-8 требуется больше одного октета, в октетах 2-4 два старших бита устанавливаются как 10xxxxxx). За счет данного приема удается с легкостью определить первый октет в потоке.</p>
89
</ol><p>Если в процессе работы с UTF-8 требуется больше одного октета, в октетах 2-4 два старших бита устанавливаются как 10xxxxxx). За счет данного приема удается с легкостью определить первый октет в потоке.</p>
90
<h4><em>Как декодировать</em></h4>
90
<h4><em>Как декодировать</em></h4>
91
<p>Для организации encoding UTF-8 используются специальные программы - декодировщики. Они могут быть написаны на разных языках программирования или представляться в качестве веб-страничек.</p>
91
<p>Для организации encoding UTF-8 используются специальные программы - декодировщики. Они могут быть написаны на разных языках программирования или представляться в качестве веб-страничек.</p>
92
<p><a>Вот</a>- наглядный пример подобного проекта в Интернете. Воспользоваться им легко:</p>
92
<p><a>Вот</a>- наглядный пример подобного проекта в Интернете. Воспользоваться им легко:</p>
93
<ol><li>Под надпись "Декодер онлайн" в левой части установить значение выпадающего списка на UTF-8.</li>
93
<ol><li>Под надпись "Декодер онлайн" в левой части установить значение выпадающего списка на UTF-8.</li>
94
<li>Слева - указать, в какую форму представления преобразовывается исходный текст.</li>
94
<li>Слева - указать, в какую форму представления преобразовывается исходный текст.</li>
95
<li>Вставить в пустую область в левой части данные, необходимые для преобразования с UTF-8.</li>
95
<li>Вставить в пустую область в левой части данные, необходимые для преобразования с UTF-8.</li>
96
<li>Нажать на кнопку "Расшифровать".</li>
96
<li>Нажать на кнопку "Расшифровать".</li>
97
</ol><p>Результат преобразования с UTF-8 появится в окне, расположенном справа.</p>
97
</ol><p>Результат преобразования с UTF-8 появится в окне, расположенном справа.</p>
98
<h4><em>Возможные ошибки</em></h4>
98
<h4><em>Возможные ошибки</em></h4>
99
<p>Рассматриваемый стандарт поддерживает не каждую последовательность байтов. Декодеры UTF-8 должны понимать и адекватно устранять такие ошибки как:</p>
99
<p>Рассматриваемый стандарт поддерживает не каждую последовательность байтов. Декодеры UTF-8 должны понимать и адекватно устранять такие ошибки как:</p>
100
<ul><li>недопустимые байты;</li>
100
<ul><li>недопустимые байты;</li>
101
<li>отсутствие нужного количества байтов в записи для продолжения 10xxxxxx;</li>
101
<li>отсутствие нужного количества байтов в записи для продолжения 10xxxxxx;</li>
102
<li>байт продолжения без начального;</li>
102
<li>байт продолжения без начального;</li>
103
<li>обработка строки посреди элемента;</li>
103
<li>обработка строки посреди элемента;</li>
104
<li>неэкономное и нерациональное "шифрование" - использование 3 байтов вместо возможных 2-х.</li>
104
<li>неэкономное и нерациональное "шифрование" - использование 3 байтов вместо возможных 2-х.</li>
105
</ul><p>Чтобы лучше разбираться в кодировании по самым разным стандартам, а также освоить написание дешифровщиков, рекомендуется записаться на дистанционные компьютерные курсы. На них научат с нуля работать с информацией в IT, а также разрабатывать собственные программные продукты.</p>
105
</ul><p>Чтобы лучше разбираться в кодировании по самым разным стандартам, а также освоить написание дешифровщиков, рекомендуется записаться на дистанционные компьютерные курсы. На них научат с нуля работать с информацией в IT, а также разрабатывать собственные программные продукты.</p>
106
<p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a>Otus</a>!</em> </p>
106
<p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a>Otus</a>!</em> </p>
107
107