Шрифт:
Интервал:
Закладка:
Рис. 13.1. Файл, набранный в Norton Editor и открытый в Блокноте
В чем же тут дело? Что такое "кодировка"? Почему их столько много, и все они разные? И, наконец, каким образом можно решить их проблему — не запускать же каждый раз Norton Editor, чтобы прочитать и напечатать свои старые файлы?
Кодовая страница
Как вы наверняка знаете, в компьютерных технологиях для записи текстовой информации используется кодирование символов последовательностями из восьми бит — одного байта[27]. Один байт соответствует одному символу. Иными словами, для записи одной буквы, цифры или значка применяется последовательность из восьми нулей и единиц.
Когда компьютерная программа получает из какого-нибудь источника компьютерные же данные, в которых содержится текст (читает текстовый файл с диска, с CD-ROM'а, получает текст из Интернета), то она выделяет из получаемого массива данных последовательности по восемь бит и воспринимает их как байты. Каждому байту, то есть каждой последовательности из восьми нулей и единиц соответствует определенный символ. Какой же конкретно? А вот это узнается программой из так называемой "таблицы символов", которая знакома абсолютно каждой программе, могущей отображать текст и используется программой для такого отображения.
Таблица символов (еще она называется "кодовой страницей") — это набор данных для перевода последовательностей бит в символы. Она может либо храниться в самой программе, либо в компонентах операционной системы и "поставляться" программе при запросе из нее. Получив последовательность из восьми бит, программа смотрит в таблицу символов и определяет из нее, какому символу эта последовательность бит соответствует. После этого программа использует дальше именно этот символ — например, отображает его на экране, чтобы пользователь мог читать текст.
Нетрудно понять, что таблица символов должна быть строжайшим стандартом — ведь если текст был написан его автором в программе, которая переводит его в последовательность бит в соответствии с одной таблицей символов, а пользователь читает эту последовательность другой программой, которая переводит эту последовательность бит в отображаемые на экране символы в соответствии с данными другой кодовой страницы, то прочитать такой текст сможет только человек, долгие годы прослуживший в шифровальном отделении внешней разведки. И для английского алфавита (латиницы) это действительно так — во всех существующих таблицах символов, использующихся во всех имеющихся компьютерных программах каждая латинская буква кодируется одной и только одной, твердо и строго определенной международными стандартами последовательностью бит — байтом. Такое соответствие последовательностей бит и отображаемых символов разработано почти двадцать лет назад на основе последовательности букв в латинском алфавите.
Каждая последовательность восьми бит имеет также и свое числовое значение — это ведь фактически число в двоичной системе счисления, которое нетрудно перевести в десятичную. Например, 01010101 в двоичной системе счисления — это 85 в десятичной, а в соответствии с международными стандартами эта последовательность бит кодирует символ "U". Число 85 в данном случае называется кодом символа "U". То есть можно сказать, что при отображении текстовых данных программа, отображающая их, каждую последовательности восьми бит воспринимает как число — код символа, смотрит в таблице символов, кодом какого символа это число является и отображает именно этот символ. Таблицу символов можно отобразить визуально — например, в Windows этой цели служит программа "Таблица символов." При таком отображении символы расставляются по возрастанию их кодов.
Но с помощью восьми бит можно закодировать до 256 символов — в самом деле, каждый бит может иметь значение 0 или 1, то есть одно из двух, следовательно, всего различных восьмибитовых последовательностей может быть 2*2*2*2*2*2*2*2 = 28 = 256. Английских букв — 26, их же, но заглавных — столько же, цифры и служебные символы вроде запятой, точки займут еще ну, мест 50, если по максимуму. Поэтому для возможности адаптации операционных систем к различным другим алфавитным системам (то есть, в применении к русскому языку, русификации программ[28]) в качестве строгого международного стандарта было принято строгое соответствие отображаемым символам лишь первых 127 последовательностей восьми бит — то есть первой половины кодовой страницы, а вторую половину отдали "на откуп" производителям регионального программного обеспечения и информационных ресурсов — чтобы они размещали в ней свои алфавиты.
Рис. 13.2. Визуальное отображение кодовой страницы — программа "Таблица символов"
Узаконенные международными стандартами коды первых 127 символов кодовых страниц, которые должны быть едиными во всех таких страницах, получили название "стандарта ASCII". Эти символы также могут кодироваться всего семью битами информации. Первые 32 кода (от 0 до 31) были назначены управляющим символам (например, символ с кодом 13 — это символ конца абзаца), остальные кодировали строчные и прописные латинские буквы, цифры, знаки препинания и математических операций. Коды второй половины этой 256-символьной кодовой страницы получили название "расширенного стандарта ASCII". Ими кодировались, как уже было сказано выше, национальные алфавиты, а также символы псевдографики, математические и некоторые другие символы. Первый бит кода символа второй половины кодовой страницы имел значение "1", в то время как для первой половины он равнялся "0". Вы можете легко отобразить на экране символ с желаемым кодом, набрав, например, в Word его код (десятичный на цифровой клавиатуре, с нулем вначале) при удерживаемой клавише Alt.
Поэтому появились различные версии кодовых страниц (различающиеся именно своей второй половиной), которым были присвоены некоторые номера для отличия их друг от друга. Чтобы пустое место в исходной английской кодовой странице не пропадало, в ней на места, соответствующие кодам символов больше 127, были поставлены гласные буквы английского алфавита с надстрочными знаками, использующимися в некоторых европейских языках вроде французского для обозначения по особому произносящихся букв, а также символы, позволяющие в текстовом режиме создавать простейшие графические изображения — символы псевдографики. В региональных кодовых страницах на этих местах стали располагать символы отличных от английского алфавитов, таких, как русский, турецкий, вьетнамский, тайский и т. д. Программы, создаваемые в неанглоязычных странах, были рассчитаны на работу с такими кодовыми страницами и, получая откуда-нибудь код символа, больший 127, отображали тот символ, который стоял под таким номером именно в их региональной
- Интернет-журнал 'Домашняя лаборатория', 2007 №2 - Журнал «Домашняя лаборатория» - Газеты и журналы / Сделай сам / Хобби и ремесла
- Интернет-журнал 'Домашняя лаборатория', 2008 №5 - Журнал «Домашняя лаборатория» - Газеты и журналы / Периодические издания / Сделай сам / Хобби и ремесла
- Интернет-журнал 'Домашняя лаборатория', 2007 №4 - Арчер - Газеты и журналы / Сделай сам / Хобби и ремесла
- Интернет-журнал 'Домашняя лаборатория', 2007 №4 - Чернованова - Газеты и журналы / Сделай сам / Хобби и ремесла
- Интернет-журнал 'Домашняя лаборатория', 2007 №4 - Шаман - Газеты и журналы / Сделай сам / Хобби и ремесла
- Отзыв на книгу Э.Э. Годика «Загадка экстрасенсов» - Сергей Кернбах - Периодические издания / Эзотерика
- «Если», 2016 № 02 - Журнал «Если» - Газеты и журналы / Научная Фантастика
- «Если», 2005 № 06 - Журнал «Если» - Периодические издания
- Обнаружение скрытых эмоций в голосе - Евгений Столов - Прочая детская литература / Детская образовательная литература / Сделай сам
- Лаборатория юного физика - Гальперштейн Леонид Яковлевич - Хобби и ремесла