A+ R A-

Проблема кодировок

E-mail Печать PDF

  Первые ЭВМ предназначались для выполнения математических расчетов, проблема представления текстов им была незнакома. Возникла она только в 60-е годы, когда компьютеры начали учиться работать с текстами.

  Современные компьютеры хранят информацию в виде байтов, каждый из которых может принимать значение от 0 до 255. Буквы и другие символы также запоминаются в виде чисел — для этого каждому из символов присваивается какое-то числовое значение.

  Таблица, ставящая в соответствие символам кодирующие их байты, называется таблица кодировки символов. В 60-е годы каждый производитель компьютеров разрабатывал свою таблицу кодировки; такая таблица содержала английский алфавит (точнее, символы латиницы) и арабские цифры. Первый стандарт на таблицы кодировки символов предложил национальный орган стандартизации США — ASA, который впоследствии был переименован в ANSI. Этой организацией в 1968 году был принят первый стандарт ASCII (American Standard Code for Information Interchange — Американский стандартный код обмена информацией).

  В соответствии с ним для кодирования использовалось не 8 (что соответствует байту), а только 7 бит, поэтому таблица содержала лишь 128 буквенно-цифровых и специальных символов. Буквы были только латинскими, о кодировании языков, использующих другие алфавиты, американцы, со свойственной им непосредственностью, не подумали.

Первая кодировочная таблица, разработанная в СССР, также была семибитовой и содержала только символы кириллицы (ГОСТ-13052).

  Расширенный, уже восьмибитовый, стандарт ASCII содержал 256 символов. Принятая в СССР кодировка, получившая название KOI7 (ГОСТ 19768-74), включала как символы кириллицы, так и латиницы, но только заглавные буквы. И лишь принятая позже таблица кодировки KOI8 стала восьмибитовой и содержала уже полный набор символов латинского и русского алфавитов.

Сейчас все кодировочные таблицы национальных символов имеют сходную структуру. Они восьмибитовые; "младшая" половина (десятичные коды с 0 до 127) совпадает со стандартом ASCII, а старшая регламентирует кодировку национальных символов.

  Благодаря этому цифры, знаки препинания и символы латиницы корректно обрабатываются на любом компьютере. Но этого, к сожалению, нельзя сказать о символах кириллицы. В разных операционных системах использовались разные таблицы, из-за чего текст, набранный в MS DOS (была когда-то такая операционная система), не читается в Windows и наоборот. В табл. 1 приведены названия операционных систем и типы используемых ими кодировочных таблиц.

Таблица 1. Наборы символов, используемые в разных OS

Операционная система

Кодировочная таблица

MS Windows 95—ХР

Windows-1251

Sun Solaris, Linux, FreeBSD и другие клоны UNIX

КОI8, ISO-8859-5

DOS, IBM OS/2

DOS CP866

MacOS

Macintosh 10007

 По мере роста Internet разнообразие кодировок стало серьезным препятствием (эта проблема касается не только славянских языков; есть ведь еще и арабская вязь, и иероглифы восточных народов). Поэтому в 1991 году была принята первая версия стандарта Unicode, или ISO/IEC 10646. Он стал результатом сотрудничества Международной организации по стандартизации (ISO) и ведущих производителей компьютеров и программного обеспечения. В этом стандарте используется 16 бит, что позволяет закодировать до 65 536 символов. Но он несовместим с большинством Internet-протоколов. Это вызвано тем, что часть битов двухбайтового пространства в протоколах Internet используется в качестве служебных, что не совпадает с их назначением в Unicode. Для совместимости с Internet-протоколами были разработаны специальные форматы преобразования Unicode (Unicode Transformation Format — UTF); самым распространенным из них стал формат UTF-8. Этот формат регламентирует правила преобразования кода символа Unicode в набор байтов (числом от 1 до 3), которые можно передавать с помощью протоколов Internet. Именно из-за некорректного преобразования в формат UTF-8 и обратно иногда в сообщениях электронной почты встречаются одни лишь вопросительные знаки.

Существует еще формат UTF-16, позволяющий кодировать символы "мертвых" языков, не попавших в первоначальную таблицу кодировки. Однако для "живых" языков эти форматы используют одни и те же коды.

Понятно, что поисковая машина должна уметь распознавать кодировку, используемую на сайте, который она индексирует, и тем более кодировку запроса, сделанного пользователем. Далеко не все зарубежные поисковые системы умеют это делать, так что с ними лучше общаться на английском языке. Русскоязычные поисковики, напротив, хорошо справляются с этой задачей. Однако, открыв найденную поисковиком страницу, вы можете обнаружить на ней хоть и не состоящий из одних вопросительных знаков, но все же "нечитабельный" текст. Чтобы преобразовать его, нужно в меню Вид программы Internet Explorer выбрать пункт Кодировка, а затем щелкнуть на названии альтернативной кодировки в контекстном меню. Если по умолчанию использовалась кодировка, названная в меню Кириллица (Windows) (на самом деле— Windows-1251), то нужно выбрать кодировку Кириллица (KOI8-R), и наоборот. На подавляющем большинстве сайтов используется одна из названных кодировок (на украиноязычных может быть еще кодировка K0I8-U). Если текст все равно не читается, следует перевести указатель мыши на пункт меню Дополнительно и проверить варианты с кириллицей DOS и ISO.

В особо "тяжелых" случаях, когда кажется, что именно на данном сайте находится самая нужная вам информация, а страница не читается, можно прибегнуть к услугам программы-перекодировщика. Среди бесплатных программ такого рода отметим TCode (_http://alexboiko.narod.ru/index_r.html).


Пожалуйста, при использовании статьи ставьте ссылку на сайт источник:  http://www.infpartner.com

Добавить комментарий


Защитный код
Обновить

Последние материалы

Наша кнопка

Если Вам понравился наш ресурс, то мы будем очень признательны Вам, если Вы разместите нашу кнопку(и) на страницах Вашего ресурса.
Наша кнопка:
infpartner.com - Домашний бизнес, партнерские программы, google adsense, работа на бирже