Первые шаги в программировании: основы, Си, Objective-c
1.16
Представление символьной информации - ASCII
Вы уже знаете, что не зависимо от того, какого типа информацию вы
храните или собираетесь хранить в компьютере, все данные имеют двоичное
представление, т.е. все хранится в двоичных числах. Эти двоичные числа могут представляться в разных системах счисления: - восьмеричной, - десятичной, - шестнадцатеричной...
Возникает вопрос, если числа хранятся в двоичном формате, то каким
образом мы храним буквы, знаки препинания и другую информацию? И каким образом мы их выводим на экран монитора? Все знаки, которые вы видите на экране монитора выводятся в виде символов.
Даже сами цифры на экране монитора должны отображаться в виде символа,
который соответствует тому числу, которое мы хотим отобразить.
По этому существует определенная "договоренность", что такая то
последовательность битов и байтов обозначает конкретный отображаемый
символ. Такая договоренность - есть суть общий стандарт для всех. Используется так называемая КОДИРОВКА, а еще точнее - таблица символов ASCII (кодовая таблица) .
Т.е. если мы будем использовать общую систему кодирования символов
(кодировку), то проблем с отображением символов у нас не будет.
ASCII
(American Standard Code for Information Interchange) - американский
стандартный код для обмена информацией; таблица символов, в котором
каждому символу присвоены специальные коды - от 0 до 255 Эти коды и говорят как нарисовать на экране тот или иной символ.
Вы наверняка сталкивались с ситуацией, когда полученное электронное
письмо в вашей почтовой программе отображается в виде каких то
иероглифов или "кракозябр". Это есть пример несоответствия
кодировок: письмо было отправлено в одной кодировке, а ваша программа
пытается прочесть его используя другую кодовую страницу. Вернуть
текст в читаемый вид можно будет только в том случае, если вы подберете
именно ту кодовую таблицу, которая использовалась при отправке вам
письма.
Нарушение кодировки также иногда случается при
просмотре веб-сайтов в интернете. Ситуация точно такая же, что и с
электронным письмом.
Если вы немного знаете веб программирование, то вам наверняка встречались такие понятия как ЧАРСЕТ (charset) - указание конкретной кодировки в которой отображается информация. Их существует великое множество для разных языков.
Наиболее используемые: - windows-1251 (Кириллица) - KOI8-R (Кириллица) - ISO-8859-1 (Западно-Европейская) - и т.д.
В данных таблицах кодировок определенный диапазон чисел выделен для
отображения буквенной информации, другой - для отображения цифр, другой -
для псевдографики и спец символов и т.д.
Изначально кодовые таблицы состояли из 7 битов, которые могли хранить довольно ограниченное количество знаков, а именно 128
Поскольку на заре развития компьютерной технологии большее
распространение компьютеры имели в США и Европе, то основным языком были
английский и европейские, и алфавиты этих стран вполне нормально
укладывались в размерность семи бит.
По мере распространения
компьютерной техники по миру семи бит под алфавит стало не хватать,
поскольку многие языки имеют отличный от латиницы алфавит: кириллица,
восточные языки... В следствии этого появился следующий стандарт использующий для кодировки 8 бит - (256 знаков) Этого количества вполне хватает для двух алфавитов и управляющих и других спец символов. Ярким представителем такой кодовой страницы для кириллицы является кодировка KOI8-R