Кодировка (или кодирование) – это процедура преобразования данных и сигналов из формы представления, удобной для восприятия человеком, в форму, которую распознает электронное устройство. Прием, позволяющий подготовить информацию для обработки, передачи, а также дальнейшего хранения.

Получаемые данные будут обрабатываться в виде логических единиц и нулей – в двоичной системе. Если числовые символы можно перевести в такую форму представления без проблем, то с кириллицей и другими буквами ситуация обстоит иначе. Буквы не поддерживают перевод в двоичный код. Вместо этого записи сначала преобразовываются в числа по специальной таблице символов. Далее компьютер считывает полученные данные и выдает результат.

В истории сложилось так, что были созданы несколько таблиц символов. Связано это с большим количеством национальных алфавитов, а также разными позициями относительно их написания.

Статья расскажет о существующих кодировках, а также поможет понять, как выразить символы кириллицы в UTF-8 и UTF-16.

Виды кодировок

Кодировать символы можно разными способами. Ситуация напрямую зависит от того, какая кодировка используется в системе. Существуют различные ее виды. Основные:

  • ASCII;
  • CP866;
  • KOI8-R;
  • Windows 251;
  • Unicode.

Чаще всего встречаются первая и последняя кодировки. Не все они распознают буквы русского алфавита. Далее каждый вариант будет рассмотрен более подробно. А еще предстоит выяснить, что делать, если при попытке закодировать кириллицу на экране появляются непонятные записи.

ASCII – базовая кодировка

ASCII – American Standard Code for Information Interchange. В русском языке произносится как «Аски». Базовая кодировка для работы устройств. Первые 128 ее символов являются наиболее используемыми. Они включают в себя:

  • латинские буквы;
  • цифры (арабские);
  • служебные компоненты;
  • знаки препинания.

Для кодировки используется один байт. Это привело к тому, что у ASCII появились расширенные версии. Изначально данные таблицы не предоставляли возможность работы с кириллицей и русскими символами. Вместо них на экране появлялись непонятные записи – «кракозябры».

Кодировка данных: кириллица
Кодировка данных: кириллица

Выше представлены стандартные таблицы ASCII. В них русского алфавита нет – он не предусмотрен действующими правилами.

Расширенные ASCII

ASCII положила начало развития актуальных современных таблиц кодирования информации. Изначально она содержала 128 составляющих, но в расширенной версии их стало 256. Это дало возможность добавления новых алфавитов для корректного распознавания информации и ее дальнейшего отображения на дисплее устройства.

Первая расширенная версия ASCII – это CP866. В ней реализована первая таблица кодировки русских букв. Верхняя часть CP866 полностью совпадает с базовым «Аски», а нижняя позволяет закодировать кириллицу и некоторые символы, которых нет на клавиатуре.

Кодировка данных: кириллица

Выше расположена кодовая таблица CP866. Она распространялась компанией IBM и использовалась преимущественно в DOS-системах.

Кириллица с момента образования CP866 стала активно использоваться к компьютерной технике. Это привело к созданию совершенно новых кодировок с русскими символами. Пример – KOI8-R.

Здесь каждый символ тоже кодируется одним байтом. Первая часть соответствует классической ASCII. Во второй располагаются специальные записи, которых нет на клавиатуре, а также русские буквы.

KOI8-R отличается тем, что буквы в русского языка в ней располагаются не в алфавитном порядке. Они располагаются по принципу созвучия с латиницей. Данный прием предпринят для того, чтобы было удобнее переходить с кириллицы на латинские буквы, отбрасывая всего один бит.

Windows 1251

Дальнейшее развитие кодировок связано с появлением графических операционных систем. Для отображения информации на экране псевдографика стала ненужной. Так возникли группы, которые выступали в качестве расширенных версий ASCII, но являлись более совершенными. Псевдографика в них отсутствовала. Они получили название ANSI.

Наглядный и весьма распространенный вариант такой кодировки – это Windows 1251. Он отличается от предшественников следующими особенностями:

  1. Вместо псевдографики здесь располагаются недостающие символы кириллицы и русской типографики. Знак ударения – единственное исключение. Его там нет.
  2. На замену псевдографики пришли элементы, приближенные к кириллице – буквы славянских языков.
  3. Первые 32 элемента отведены под операции, перевод строки и пробел.
  4. До 127 элемента расположены интернациональные компоненты, латинский алфавит, знаки препинания и математических действий, цифры.
  5. Оставшееся «пространство» выделено под национальные элементы. Именно они отображают различные мировые алфавиты. 
Кодировка данных: кириллица

Кодовая таблица, представленная выше – часть Windows 1251, отведенная под кириллицу и иные элементы. 

Unicode

Unicode – кодировка, которая пользуется наибольшим спросом в современных компьютерных устройствах. Этот стандарт включает в себя почти все знаки существующих письменных языков. Он преобладает в Интернете. Был создан в 1991 году.

Unicode является многоязычным стандартом, базирующимся на ASCII. Он включает не только кириллицу, но и азиатские иероглифы. Выступает в качестве универсальной кодировки. Включает в себя несколько стандартов.

UTF-32

Первая вариация Unicode. Для кодирования одного элемента здесь используются 32 бита или 4 байта. Данная особенность приводит к тому, что закодированный кириллический символ в UTF-32 будет иметь вес в 4 раза больше, чем в ASCII. Несмотря на соответствующий недостаток, система стала предлагать закодировать знаки в количестве 232.

Все символы в UTF-32 непосредственно индексируемы. Найти тот или иной знак по номеру его позиции в файле удается очень быстро. Это привело к быстрой обработке операций по замене символьных данных.

UTF-16

UTF-16 – новый, более совершенный стандарт Unicode. После появления стала выступать базовым пространством для всех используемых печатных элементов. Кириллическая таблица в ней тоже есть.

Кодировка данных: кириллица

Коды символов в UTF-16 содержатся в 16-ричной системе счислений. Увидеть их можно, если перейти в раздел Windows «Таблица символов». Она располагается в меню «Пуск»–«Программы»–«Стандартные»–«Служебные».

При помощи UTF-16 можно закодировать 65 536 элементов. Это число стало базовым для Unicode. Расширенное пространство включает в себя миллион дополнительных символьных записей.

При переходе с ASCII на UTF-16 размер исходного кода документа увеличивается уже не в 4, а в 2 раза. Связано это с использованием 2 байтов для кодирования одного и того же символа или шестнадцать бит.

UTF-8

Со временем был разработан стандарт UTF-8. В нем тоже есть кириллическая кодовая таблица. Носит название переменной длины. Несмотря на то, что в названии стандарта стоит 8, она действительно меняется. Каждый элемент может получить код длиной от 1 до 6 байт включительно. Практически стандартом используются компоненты до 4 байт. Латинские буквы здесь содержатся в одном байте, как и в ASCII.

В UTF-8 русские символы занимают по 2 байта, а грузинские – по 3. Текущий стандарт предусматривает возможность печати не только букв, но и смайликов. С UTF-8 хорошо работают даже системы, которые не ориентированы на Unicode. Связано это с тем, что базовая часть ASCII перешла в новый стандарт Юникода.

Блоки кириллицы

Unicode, начиная с версии 9.0, для кириллицы отвел пять различных блоков:

Как называетсяДиапазон кодов типа hexВерсия Unicode
CyrillicСтандартная кириллицаОт 0400 до 04FF1.1
Cyrillic SupplementДополненияОт 0500 до 052F3.2
Cyrillic Extended-AРасширенная кириллица–АОт 2DE0 до 2DFF5.1
Extended-BКириллица расширенного типа–BОт A640 до A69F
Extended-CКириллица расширенная–CОт 1C80 до 1C8F9.0

Эти 4 раздела содержатся в кодовом пространстве Unicode 448 позиций. Из них 22 не определены.

Все символы кириллицы можно разбить на несколько групп:

  • славянские алфавиты;
  • исторические буквы и старославянский (церковный славянский) алфавит;
  • дополнительные буквы для различных языков, использующих кириллицу;
  • церковнославянские буквотипы;
  • дополнительные буквы и символы для церковнославянского языка;
  • элементы для старой орфографии Абхазии;
  • старые формы представления кириллицы.

Несмотря на относительное совершенство Unicode, при использовании кодировок кириллицы в UTF-8 и других возникают некоторые проблемы. Пример – неоднозначность относительно кодирования некоторых букв. Для того, чтобы привести текст к единому стилю и корректному отображению, приходится определять каждым конкретным стандартом форму нормализации информации.

Непонятные символы на экране – исправление

Любая страница данных может быть закодирована не только в ASCII, но и в Unicode. Главное правильно выбрать кодировку для русского текста. Если на экране вместо нормальных текстовых данных отображаются «кракозябры» (или непонятные надписи), значит возникла проблема перекодирования.

Для редактирования и создания новых текстовых документов можно использовать различные приложения, поддерживающие работу не только с Unicode. Тогда вероятность возникновения ошибок отображения информации будет сведена к минимуму. Пример – Notepad++. Он умеет подсвечивать синтаксис сотен языков программирования и разметки, что станет особо полезным при программировании проектов.

Чтобы страница, содержащая текст, была приведена от одного стандарта к другому, потребуется:

  1. Выделить текст в Notepad++.
  2. Нажать на кнопку «Кодировка» на верхней панели инструментов.
  3. Выбрать подходящий вариант. Пример – «Преобразовать в UTF-8».

Желательно выбирать вариант кодировки UTF-8 без BOM для русского языка, отображаемого на странице в документе или на сайте. Этот прием поможет сохранить данные без сигнатуры (добавления лишних трех байтов в самое начало документов).

Десятичная система

При преобразовании информации из одной системы счисления (и кодировки) в другую, могут потребоваться ее десятичные значения. Такой вариант используется в ASCII и UTF-32. При помощи него можно перевести символ в удобную для восприятия компьютером форму. А еще – выполнить дальнейшую перекодировку в те или иные системы счисления.

Десятичная система помогает в Windows вводить различные символы при помощи сочетания с Alt. Для перевода кириллицы в UTF-8 format поможет таблица ниже.

Кодировка данных: кириллица
Кодировка данных: кириллица
Кодировка данных: кириллица

В Unicode transformation символьных записей производится при помощи целых чисел без знаков. Необходимые преобразования помогут выполнить специализированные сайты-конвертеры. Самостоятельно такие операции практически не используются. Таблицы соответствия и конвертеры сильно облегчают эту задачу.

Как освоить кодирование информации

Русская кодировка может некорректно отображаться в некоторых приложениях, а также операционных системах. Связано это с тем, что не все стандарты кодирования данных имеют коды для соответствующих элементов.

Чтобы лучше разобраться в программировании, а также грамотном использовании стандартов кодирования и переводе текста из одной системы в другую, рекомендуется закончить дистанционные онлайн курсы. Они предлагают:

  • постоянное кураторство;
  • домашние задания и интересные практические задачи;
  • возможность освоить инновационные профессии и направления в мире IT в сжатые сроки;
  • помощь в формировании портфолио;
  • разнообразие направлений – есть предложения как для новичков, так и для взрослых.

По завершении курса обучения ученик получит сертификат в электронной форме, подтверждающий приобретенный спектр знаний и умений.

Хотите стать профессионалом в сфере обработки данных? Добро пожаловать на курсы в Otus: