Контакти;

Все для мобілки: Мобільні новини; Каталог WAP-ресурсів; Розповіді про мобілки; Різне.

 
Все для компьютера: Жосткі диски; Процесори; Графіка; Принтери; Системні плати; Інтернет; Різне.
 
Україна: Нам пора для України жити! Вірші Констянтина Гайя; Ностальгія за минулим; Політика;

Основні розділи:

Конгрес Українських Націоналістів Rambler's Top100
Рейтинг@Mail.ru Украина онлайн

© Лихач М.В. sem@shynok.com.ua 2004рік

Кодировки

До сих пор, отправляя запрос поисковой системе, мы просто вводили нужные слова в соответствующие поля, а затем нажимали специальную кнопку или клавишу Enter. И это было так естественно, что вряд ли кто-нибудь подумал о возможных опасностях. Между тем поисковая система может не понять введенное слово, потому что люди и компьютеры воспринимают слова и составляющие их буквы по-разному. Буквы для человека - это картинки. Рассматривая изображение лестницы-стремянки с горизонтальной перекладиной, человек решает, что это буква А. Компьютер же распознает букву А совершенно иначе, потому что буквы для него - это числа. Встретив число 65, компьютер решает, что перед ним прописная латинская буква А, число 43 будет им опознано как знак +, а число 105 - как строчная латинская буква i. Но - спросите вы - почему прописной латинской букве А соответствует число 65, а не какое-то другое? Потому, что таково соглашение между производителями компьютеров, с одной стороны, и теми, кто делает программы, - с другой. Только такое соглашение, называемое кодировкой, позволяет правильно вводить буквы и правильно отображать их на экране компьютера. Чтобы понять, почему стандартная кодировка необходима, задумаемся над тем, почему при нажатии клавиши А на клавиатуре программа высвечивает букву А на экране. Как мы уже поняли, при нажатии клавиши программе направляется число 65. Получив его, программа обращается к специальному файлу, который называется шрифтом и содержит изображения букв. Причем изображения эти расставлены в определенном порядке. Под номером 65 шрифт хранит изображение прописной латинской буквы А, под номером 43 - знака +, и т. д. Итак, получив с клавиатуры число 65, программа обращается к шрифту и показывает на экране изображение того, что стоит в нем на 65-м месте. Представим себе, какая была бы путаница, если бы в шрифте на 65-м месте стояло изображение совсем другой буквы! К счастью для англоговорящих народов, путаницы не происходит, потому что во всем мире принята практически одна кодировка для латинских букв - и в этой кодировке, латинским буквам и другим стандартным символам отводятся первые 128 чисел (с 0 до 127), а числу 65 всегда соответствует прописная латинская буква А. Соответственно, и шрифты, где есть изображения латинских букв, всегда на 65-м месте содержат эту букву А. Так кодируются латинские буквы. А вот другим алфавитам отводятся, как правило, числа с 128 по 255. Прописной русской букве А соответствует число 192, а строчной букве я - число 255. Соответственно, шрифт, поддерживающий эту кодировку, должен хранить на 192-м месте изображение буквы А, а на 255-м - буквы я. И если бы кодировка русских букв, была единственной, все было бы хорошо. Все русские шрифты содержали бы тогда изображения русских букв, расставленные в нужном порядке и на своих местах. Но, к сожалению, кодировка Winl251 - далеко не единственная. Весьма распространена и кодировка KOI-8 . В этой кодировке числу 192 соответствует не прописная буква А, а строчная буква ю. Теперь представим себе, что будет, если для отображения текста в кодировке KOI-8 используется шрифт, настроенный на кодировку Winl251. Пусть, например, в кодировке KOI-8 записана фраза "Кирилл и Мефодий". Глядя фрагмент кодировки, соображаем, что в компьютере ее будет представлять такая последовательность чисел: 235,201.210,201.204,204.32.201.32,237.197.198.207.196,201,202 Как видно, числу 235 в кодировке KOI-8 соответствует русская буква К, числу 201- буква и, и т. д. Но в шрифте, настроенном на кодировку Winl251, на 235-м месте находится, образ буквы л, а на 201-м месте - образ буквы Й. В результате получится такая фраза: ЛЙТЙММ Й нЕЖПДЙК И такие превращения довольно часты в русском Интернете. Загрузив страничку в браузер, можно увидеть мешанину из русских букв вместо понятного текста. Если такое случилось, попробуйте изменить кодировку вручную. Это делается по-разному в разных браузерах. В Internet Explorer 5.0 нужно обратиться к меню Вид, выбрать пункт Вид кодировки и далее - Кириллица (К0И8-Р). После этого на экране должен появиться нормальный русский текст. Говоря о разных кодировках, мы до сих пор предполагали, что чисел от 0 до 255 хватит, чтобы закодировать два любых алфавита (от 0 до 127 займет латинский алфавит, а от 128 до 255 - какой-то другой, например, русский). Но есть языки, где может быть несколько тысяч знаков-иероглифов. Для таких языков, а также для стандартизации представления букв создан стандарт Unicode, в котором буквы кодируются числами от 0 до 65 535. В этой кодировке русским буквам достались числа от 1024 до 1279, то есть 256 символов. Зная о существовании разных кодировок, легко понять, как их воспримут поисковые системы. Когда в соответствующем поле вводится запрос на русском языке, он вводится в определенной кодировке - чаще всего Winl251. Далее введенные слова или фразы ищутся в индексе или каталоге поисковой системы. Но давайте вспомним, что слово или фраза с точки зрения компьютера есть последовательность чисел. И для каждой кодировки эта последовательность будет разной. Например, слову "мама" в кодировке Winl251 соответствуют числа 236, 224, 236 и 224 . То же слово в кодировке KOI-8 будет представлено цифрами 205, 193, 205 и 193 . Это значит, что, без предварительной подготовки поисковая система сможет найти указанные слова только в документах, чья кодировка совпадает с кодировкой запроса. Вот почему универсальные поисковые системы (Google, например) не очень хороши для поиска в русскоязычных документах. Для Google, если не принять специальных мер, все документы представляют собой абстрактные последовательности чисел. И если запрос сделан в кодировке Winl251, Google будет тупо искать соответствующую последовательность чисел и сможет найти ее только в документах, использующих ту же кодировку. Как мы знаем, индекс Google нечувствителен к регистру букв. Но чтобы решить, что латинские символы А и а - это одна и та же буква, нужно знать кодировку! Чуть позднее мы увидим, как научить Google русским кодировкам, а в следующих разделах познакомимся со специализированными поисковыми системами, предназначенными для поиска только в русскоязычных документах. Преимущество этих систем - в том, что они уже "знают" обо всех возможных кодировках. И когда запрос делается в кодировке Winl251, поисковая система перекодирует его всеми известными ей способами и затем ищет в своем индексе или каталоге соответствующие последовательности чисел.  

 

 

Основы интернета