Кодирование информации (4) - Реферат. Телефонный план нумерации. Употребление и злоупотребление обработкой ошибок PHP

Одной из самых частых проблем, с которой сталкивается начинающий Web-мастер (да и не только начинающие), это проблемы с кодировкой на сайте . Даже у меня постоянно появляется при создании сайтов "абракадабра ". Но, благо, я прекрасно знаю, как эту проблему решить, поэтому всё привожу в порядок в течение нескольких секунд. И в этой статье я постараюсь научить Вас также быстро решать проблемы, связанные с кодировкой на сайте .

Первое, что стоит отметить, это то, что все проблемы с появлением "абракадабры" связаны с несовпадением кодировки документа и кодировки, выставляемой браузером . Допустим, документ в windows-1251 , а браузер почему-то выставляет UTF-8 . А уже источником такого несовпадения могут быть следующие причины.

Первая причина

Неправильно прописан мета-тег content-type . Будьте внимательны, в нём всегда должна находиться та кодировка, в котором написан Ваш документ.

Вторая причина

Вроде бы, мета-тег прописан так, как Вы хотите, и браузер выставляет именно то, что Вы хотите, но почему-то всё равно с кодировкой проблемы. Здесь, почти наверняка, виновато то, что сам документ имеет отличную кодировку. Если Вы работаете в Notepad++ , то внизу справа есть название кодировки текущего документа (например, ANSI ). Если Вы ставите в мета-теге UTF-8 , а сам документ написан в ANSI , то сделайте преобразование в UTF-8 (через меню "Кодировки " и пункт "Преобразовать в UTF-8 без BOM ").

Третья причина

Четвёртая причина

И, наконец, последняя популярная причина - это проблема с кодировкой в базе данных . Во-первых, убедитесь, что все Ваши таблицы и поля написаны в одной кодировке, которая совпадает с кодировкой остального сайта. Если это не помогло, то сразу после подключения в скрипте выполните следующий запрос:

SET NAMES "utf8"

Вместо "utf8 " может стоять другая кодировка. После этого все данные из базы должны выходить в правильной кодировке.

В данной статье я, надеюсь, разобрал, как минимум, 90% проблем, связанных с появлением "абракадабры" на сайте . Теперь Вы должны расправляться с такой популярной и простой проблемой, как неправильная кодировка, в два счёта.

Если последовательность бит не выглядит разумной(с точки зрения человека), то это случай, когда документ скорее всего был неверно сконвертирован в определенный момент. К примеру мы берем текст ÉGÉìÉRÅ[ÉfÉBÉìÉOÇÕìÔǵÇ≠ǻǢ, и, не придумав ничего лучше, сохраняем его в UTF-8. Текстовый редактор предположил, что он правильно прочитал текст с кодировкой Mac Roman и теперь его надо сохранить в другой кодировке. В конце концов, все эти символы валидны в Unicode. В смысле, в Unicode есть пункт для É, для G, и так далее. Так что мы просто сохраняем его в UTF-8:

11000011 10001001 01000111 11000011 10001001 11000011 10101100 11000011 10001001 01010010 11000011 10000101 01011011 11000011 10001001 01100110 11000011 10001001 01000010 11000011 10001001 11000011 10101100 11000011 10001001 01001111 11000011 10000111 11000011 10010101 11000011 10101100 11000011 10010100 11000011 10000111 11000010 10110101 11000011 10000111 11100010 10001001 10100000 11000011 10000111 11000010 10111011 11000011 10000111 11000010 10100010

Вот так теперь текст ÉGÉìÉRÅ[ÉfÉBÉìÉOÇÕìÔǵÇ≠ǻǢ представляется последовательностью бит UTF-8. Эта битовая последовательность совершенно оторвана от того, что было в изначальном документе. В какой бы кодировке мы не открывали эту последовательность, нам ни за что не видать исходный текст エンコーディングは難しくない. Он просто потерян. Его можно было бы восстановить, знай мы изначальную кодировку Shift-JIS и то, что мы расценили текст как Mac Roman, а затем сохранили его в UTF-8. Но такие чудеса редко встречаются.

Множество раз конкретная битовая последовательность оказывается неверной в конкретной кодировке. Если бы мы попытались открыть изначальный документ в ASCII, то увидели бы, что часть символов распозналась, а часть – нет. Программа, который вы пользуетесь, могла бы решить просто выбросить байты, которые не подходят под текущую кодировку, или заменить их на знаки вопроса. Или на специальный символ замены в Unicode: � (U+ FFFD). Если после процедуры изъятия неподходящих символов вы сохраните документ, то потеряете их навсегда.

Если вы неверно угадали кодировку, а потом сохранили ее еще в одну, то вы испортите документ. Можно пытаться исправить его, но эти попытки обычно успехом не оканчиваются. Магия с битовым сдвигом обычно остается неработающей магией: как мертвому припарки.

И как же правильно менять кодировки?

Это правда просто! Нужно знать кодировку конкретного кусочка текста(битовой последовательности) и применить ее для расшифровки. Это все, что нужно сделать. Если вы пишете программу, которая принимает от пользователя текст, определите в какой кодировке она будет это делать. Любое текстовое поле должно знать, в какой кодировке оно принимает данные. Для любого типа файла, который пользователь может загрузить в программу должна быть определена кодировка. Или должен существовать способ спросить об этом пользователя. Информацию может предоставлять формат файла или пользователь(большинство из них вряд ли знают, пока конечно не дочитают статью).

Если нужно перегнать текст из одной кодировки в другую, применяйте специальные инструменты. Конвертация – утомительный труд по сравнению двух кодовых страниц и решению, что символ 152 в кодировке А совпадает с символом 4122 в кодировке B с последующим изменением битов. Не нужно изобретать этот велосипед: в каждом распространенном языке программирования есть абстрактные от битов и кодовых страниц инструменты для конвертации текста из кодировки в кодировку.

Скажем, ваше приложение должно принимать файлы в GB18030, но внутри вы работает в UTF-32. Инструмент iconv может в одну строку сделать конвертацию: iconv("GB18030", "UTF-32", $string). Символы останутся неизменным, несмотря на то, что битовое представление измененилось.

character GB18030 encoding UTF-32 encoding
縧 10111111 01101100 00000000 00000000 01111110 00100111

Вот и все. Содержание строки в его человеческом понимании не изменилось, но теперь это правильная строка в UTF-32. Если вы продолжите работать с ней в UTF-32, у вас не будет никаких проблем с нечитаемыми символами. Однако, как мы обсуждали ранее, не все кодировки способны отображать все символы. Невозможно закодировать символ 縧 в любой из кодировок для европейских языков. И может случится нечто ужасное.

Все в Unicode

Именно поэтому не существует оправдания в 21 веке не использовать Unicode. Некоторые специализированные кодировки для европейских языков могут более производительны, чем Unicode для конкретных языков. Но пока вам не приходится работать с терабайтами специального текста(а это ОЧЕНЬ много), вам не о чем беспокоиться. Проблемы, вытекающие из-за несовместимости кодировок, гораздо страшнее, чем потерянный гигабайт. И этот аргумент станет только весомей с ростом и удешевлением хранения данных и ширины канала.

Если системе нужно работать с иными кодировками, сконвертируйте текст в Unicode прежде всего, и перегоните обратно, если его нужно куда-нибудь вывести. Иначе придется очень внимательно следить за каждым случаем обращения к данным и проводить необходимые конвертации, если это возможно без потери информации.

Счастливые случайности
У меня был сайт подключенный к БД. Мое приложение обрабатывала все как UTF-8 и в БД хранила его так, и все было супер, но когда я зашел в админку БД, я ничего не мог понять.
- анонимный быдлокодер

Возникают ситуации, когда кодировки обрабатываются неверно, но все по прежнему работает нормально. Часто бывает, что кодировка базы данных выставлена в latin-1, а приложение работает с UTF-8(или любой другой). Вобщем-то, любая комбинация 1 и 0 допустима в однобайтной latin-1. Если база данных получает от приложения данные вида 11100111 10111000 10100111, то оно с радостью сохраняет их, думая, что приложение имело ввиду 縧. Почему бы и нет? Позже бд возвращает те же самые биты приложению, которое счастливо, ведь получило символ UTF-8 縧, который и задумывался. Но интерфейс администрирования бд знает, что используется latin-1, и вот результат: ничего не возможно понять.
Глупец просто выиграл лотерею, хотя звезды были не на его стороне. Любая операция над текстом в бд может сработать, но может и выполниться не как задумано, так как бд неправильно воспринимает текст. В худшем случае, бд ненароком уничтожит весь текст, выполняя произвольную операцию 2 года спустя после установки из-за неверной кодировки(и конечно, никакого тебе бэкапа).

UTF-8 и ASCII

Гениальность UTF-8 в бинарной совместимости с ASCII, которая является де-факто основой для всех кодировок. Все символы ASCII занимают максимум байт в UTF-8 и используют те же биты, что и в ASCII. Иными словами, ASCII может быть отражено 1:1 в UTF-8. Любой символ не из ASCII занимает 2 или более байт в UTF-8. Большинство языков программирования, использующих ASCII в качестве кодировки исходного кода, позволяет включать текст в UTF-8 прямо в текст:

Сохранение в UTF-8 даст последовательность:

00100100 01110011 01110100 01110010 01101001 01101110 01100111 00100000
00111101 00100000 00100010 11100110 10111100 10100010 11100101 10101101
10010111 00100010 00111011

Только 12 байт из 17(те, что начинаются с 1) являются символами UTF-8(2 символа по 3 байта). Прочие символы находятся в ASCII. Парсер прочитает следующее:

$string = «11100110 10111100 10100010 11100101 10101101 10010111»;

Парсер воспринимает все за кавычкой как последовательность бит, которую нужно трактовать как есть, все, вплоть до другой кавычки. Если вы просто выведете эту последовательность, вы выведете текст в UTF-8. Не нужно делать ничего больше. Парсеру не нужно специально поддерживать utf-8, нужно просто воспринимать строки буквально. Простые парсеры могут поддерживать Unicode именно так, на самом деле не поддерживая Unicode. Однако многие языки программирования явно поддерживают Unicode.

Кодировки и PHP.

PHP не поддерживает Unicode. Правда, он поддерживает его достаточно хорошо. Предыдущий параграф показывает, как включать символы UTF-8 прямо в текст программы без каких-либо проблем, ибо UTF-8 обратно совместима с ASCII, и это все, что нужно PHP. Однако утверждение, что «PHP не поддерживает Unicode» истинно, ибо вызывает множество затруднений в сообществе PHP.

Ложные обещания

Одной моей мозолью стали функции utf8_encode и utf8_decode. Я часто вижу глупости наподобии «Чтобы использовать Unicode в PHP, нужно вызвать utf8_encode для вводимого текста и utf8_decode для выводимого». Эти две функции обещают некую автоматическую конвертацию текста UTF-8, которая якобы обязательна, ибо «PHP не поддерживает Unicode». Если вы читаете эту статью не по диагонали, то знаете, что

  1. Ничего специфического нет в UTF-8
  2. Вы не можете закодировать текст в UTF-8 постфактум

Поясню пункт 2: любой текст уже чем-то закодирован. Когда вы вставляете строки в исходный код, они уже имеют кодировку. Точнее, ту кодировку, которую сейчас использует ваш текстовый редактор. Если вы получаете их из бд, они уже закодированы. Если вы читаете их из файла… уже знаете, да?

Текст либо закодирован в UTF-8, либо не закодирован. Если нет, то он закодирован в ASCII, ISO-8859-1, UTF-16 или как-нибудь еще. Если он не в UTF-8, но предполагается, что он содержит «UTF-8 символы», то у вас когнитивный диссонанс. Если текст все же содержит нужные символы, закодированные в UTF-8, то он в UTF-8.

Так что же, черт возьми, делает utf8_encode?

«Переводит строку ISO-8859-1 в кодировку UTF-8»

Ага! Автор хотел сказать, что функция конвертирует текст из ISO-8859-1 в UTF-8. Вот она для чего. Такое ужасное название ей наверно дал какой-нибудь непредусмотрительный европеец. Тоже самое касается и utf8_decode. Эти функции неприменимы ни для чего, кроме конвертации из ISO-8859-1 в UTF-8. Если вам нужна другая пара кодировок, используйте iconv.
utf8_encode – это вам не волшебная палочка, которой нужно махать над каждым словом потому что «PHP не поддерживает Unicode». Она вызывает больше проблем, чем решает – скажите спасибо тому европейцу и невежам-программистам.

Нативный-шмативный

Так что имеют ввиду, когда говорят, что язык поддерживает Unicode? Важно, предполагает ли язык, что один символ занимает один байт, или нет. Так, PHP позволяет получить доступ до выбранного символа, трактуя строку как символьный массив:

Если $string имеет однобайтную кодировку, то она отдаст нам первый символ. Но только потому, что «character» совпадает с «byte» в однобайтной кодировке. PHP просто отдает первый байт без единой мысли о символах. Строки для PHP – не более, чем последовательности байт, ни больше, ни меньше. Эти ваши «читаемые символы» - не более, чем выдумка человека, PHP на них наплевать.

01000100 01101111 01101110 00100111 01110100
D o n " t
01100011 01100001 01110010 01100101 00100001
c a r e !

Тоже касается и многих стандартных функций, таких как substr, strpos, trim и прочих. Поддержка прекращается там, где кончается соответствие между байтом и символом:

11100110 10111100 10100010 11100101 10101101 10010111
漢 字

$string для указанной строки отдаст опять же только первый байт, равный 11100110. Другими словами, третий байт символа 漢. Последовательность 11100110 неверна для UTF-8, так что строка теперь тоже неверна. Если вам тоже так кажется, можете попробовать другую кодировку, в которой 11100110 будет каким-нибудь допустимым случайным символом. Можете веселиться, только не на боевом сервере.

Вот и все. «PHP не поддерживает Unicode» означает, что большинство функций в языке предполагают, что один байт равен одному символу, что ведет к обрезке многобайтных символов или неверному подсчету длины строки. Это не означает, что вы не можете использовать Unicode в PHP, или что любой текст надо прогонять через utf8_encode, или еще какую-нибудь глупость.

К счастью, существует специальное расширение, которое добавляет все важные строковые функции, но с поддержкой многобайтных кодировок. mb_substr($string, 0, 1, ‘UTF-8’) на вышеупомянутой строке совершенно правильно вернет последовательность 11100110 10111100 10100010, соответствующую символу 漢. Из-за того, что функции нужно думать о том, что она делает, ей нужно передать кодировку. Поэтому эти функции принимают параметр $encoding. К слову, кодировку можно задать глобально для всех функции mb_ с помощью mb_internal_encoding.

Употребление и злоупотребление обработкой ошибок PHP

Вся проблема (не-)поддержки Unicode в PHP в том, что интерпретатору плевать. Последовательности байт, ха. Нет дела до того, что они значат. Не делается ничего, кроме хранения строк в памяти. У PHP даже понятия такого нет – кодировка. И пока не нужно манипулировать строками, это и не важно. Делается работа с последовательностями байт, которые могут быть всопринятыми кем-то как символы. PHP требует от вас только сохранять исходный код в чем-нибудь, совместимом с ASCII. Парсер PHP ищет конкретные символы, которые говорят ему что делать. 00100100 говорит: «объяви переменную», 00111101 – «присвой», 00100010 – начало или конец строки и т.д. Все, что не важно парсеру, воспринимаются как литералы байтовых последовательностей. Это касается и всего, что заключено в кавычки. Это значит:

  1. Вам не удастся сохранить исходник с PHP в несовместимую с ASCII кодировку. Например в UTF-16 знак кавычик кодируется как 00000000 00100010. Для PHP, который все воспринимает как ASCII, это NUL-байт, за которым следует кавычка. PHP наверно бы икал на каждый символ оказывался бы NUL.
  2. Вы можете сохранить PHP в совместимую с ASCII кодировку. Если первые 128 пунктов кодировки совпадают с ASCII, PHP съест их. Все значимые символы для PHP лежат в пределах первых 128 пунктов, определенных ASCII. Если строковые литералы содержат что-то выходящие за этот предел, PHP не обратит внимание. Вы может сохранить исходник в ISO-8859-1, Mac Roman, UTF-8 или любую другую кодировку. Строковые литеры в вашем коде получат ту кодировку, в которой вы сохраняете файл.
  3. Любой внешний файл для PHP может иметь произвольную кодировку. Если парсеру не надо обрабатывать файл, то он останется довольным.
    $foo = file_get_contents("bar.txt");

    Написанное выше просто засунет байты из bar.txt в переменную $foo. PHP не будет пытаться ничего интерпретировать, кодировать или совершать другие махинации с содержимым. Файл может содержать бинарные данные или картинку, PHP все равно.

  4. Если внешняя и внутрення кодировки должны совпадать, то они действительно должны. Обыденным случаем является локализация: в коде вы пишете что-то типа echo localize(‘Foobar’), а во внешем файле это:
    msgid «Foobar»
    msgstr "フーバー"

    Обе строки Foobar должны иметь идентичное битовое представление. Если исходный код в ASCII, а локализционный – в UTF-16, вам не повезло. Нужно проводить дополнительную конвертацию.

Проницательный читатель может спросить, скажем, можно ли сохранить последовательно байт UTF-16 в литерал исходного файла в ASCII, и ответ будет всегда такой: конечно.

01100101 01100011 01101000 01101111 00100000 00100010
e c h o "
11111110 11111111 00000000 01010101 00000000 01010100
(UTF-16 marker) U T
00000000 01000110 00000000 00101101 00000000 00110001
F - 1
00000000 00110110 00100010 00111011
6 " ;

Первая строка и последние 2 байта – из ASCII. Остальное представлено в UTF-16 2 байтами на символ. Ведущие 11111110 11111111 на второй строке – это маркер начала текста в UTF-16(требует по стандарту, PHP об этом ни черта не слышал). Этот скрипт выводит строку “UTF-16”, закодированную в UTF-16, потому что просто выводит байты между двух кавычек, что и выливается в текст «UTF-16», закодированный в UTF-16. C другой стороны, исходник не является полностью корректным ни в ASCII, ни в UTF-16, так что можете открыть редактор и повеселиться.

Итого

PHP поддерживает Unicode, или точнее, любую кодировку довольно точно до тех пор, пока вы можете заставить парсер выполнять его работу, а разработчика – понимать, что он делает. Нужно быть внимательным только при работе со строками: деление, удаление пробелов, подсчет и все другие операции, требующие работать с символами, а не байтами. Если ничего не делать со строками, кроме чтения и вывода, то вряд ли возникнут проблемы, которых нет в других языках.

Языки с поддержкой кодировок

Так что же тогда для языка значит поддерживать Unicode? Javascript например поддерживает Unicode. На самом деле любая строка в Javascript кодирована в UTF-8. И это единственная кодировка, с которой работает Javascript. Вам просто не получить в Javascript строку не в UTF-8. Javascript поклоняется Unicode в такой степени, что в ядре языка просто нет инструментов для работы с другой кодировкой. Раз уж Javascript чаще всего исполняется в браузере, у вас не возникает проблем: браузер способен исполнить тривиальную логику кодирования и декодирования ввода-вывода.

Прочие языки просто поддерживают кодировки. Внутренняя работа проводится в какой-то одной кодировке, часто в UTF-16. Но это значит, что им нужно подсказывать в какой кодировке текст, или они сами будут пытаться ее определить. Необходимо указывать в какой кодировке сохранен исходный код, в какой кодировке сохранен файл, который будет прочитан, в какой кодировке нужно осуществлять вывод. Язык проведет конвертацию налету, если будет указано, что нужно использовать Unicode. Они делают все то, что в PHP нужно делать в полуавтоматическом режиме где-то на втором плане. Не лучше и не хуже, чем в PHP, просто по-другому. Хорошая новость в том, что строковые функции наконец просто работают, и вам не нужно думать, содержит ли строка многобайтные символы или не содержат, какие функции выбирать для работы и прочие вещи, которые нужно было бы делать в PHP.

Дебри Unicode

Раз уж Unicode решает столько различных проблем и работает в множестве различных сценариев, приходится платить за это копанием в дебрях. К примеру, в стандарте Unicode содержится инфорация о решении таких проблем, как унификации иеороглифоф ЯКК . Множество символов, общих для Японии, Китая и Кореи, изображены немного по разному. Или проблемы конвертации символов из нижнего регистра в верхний, наоборот или туда-обратно, которая оказывается не всегда такой простой, как с кодировками западно-европейских языков. Некоторые символы могут быть представлены разными пунктами. Буква ö к примеру может быть представлена пунктом U+00F6(«ЛАТИНСКАЯ МАЛЕНЬКАЯ БУКВА О С ДИЕРЕЗИСОМ») или как два пункта U+006F(«МАЛЕНЬКАЯ БУКВА O») И U+0308(«ПОДСТАВЛЯЕМЫЙ ДИАРЕЗИС»), что значит буква o с ¨. В UTF-8 это либо 2 байта, либо 3 байта, которые в обоих случаях представляют собой нормальный символ. Поэтому есть правила нормализации в стандарте, т.е. как конвертировать эти формы из одной в другую. Это и многое другое находится вне материалов статьи, но об этих моментах нужно знать.

Опять ниасилил!
  1. Текст – это всегда последовательность бит, которую нужно переводить на естественный язык с помощью таблиц. Неверная таблица – неверный символ.
  2. Нельзя работать напрямую с текстом – вы всегда работаете с битами, которые свернуты в абстракции. Ошибки связаны с ошибками в одной из абстракций.
  3. Системы, передающие друг другу информацию всегда должны указывать рабочую кодировку. Сайт например говорит браузеру, что он отдает информацию в UTF-8.
  4. В наше время UTF-8 обратно совместим с ASCII, несмотря на то, что может кодировать практически любой символ, и тем не менее относительно эффективен в большинстве случаев. Другие кодировки тоже находят применение, но должна быть серьезная причина, чтобы мучиться с кодировками, которые поддерживают только часть Unicode.
  5. С проблемой соответствия байта и символа должны разбираться оба: и программа, и программист.

Теперь нечего оправдываться, когда вы вновь испортите текст.

Теги: Добавить метки

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

Цель работы. Дать основные понятия по теме «Кодирование текстовой информации», отразить возможности злоумышленника при реализации угроз, направленных на нарушение целостности передаваемых сообщений, предложить пути решения проблемы.

Что такое код? Код – это система условных знаков для представления информации.

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

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

Элементы кодируемой информации :

Буквы, слова и фразы естественного языка;

Знаки препинания, арифметические и логические операции, и т.д;

Наследственная информация и т.д.

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

Способы кодирования: числовой (с помощью чисел), символьный (с помощью символов алфавита исходного текста) и графический (с помощью рисунков, значков)

Цели кодирования:

А) Удобство хранения, обработки, передачи информации и обмена ей между субъектами;

Б) Наглядность отображения;

В) Идентификация объектов и субъектов;

Г) Сокрытие секретной информации.

Различают одноуровневое и многоуровневое кодирование информации. Одноуровневое кодирование–это световые сигналы светофора. Многоуровневое- представление визуального (графического) образа в виде файла фотографии. Bначале визуальная картинка разбивается на пиксели, каждая отдельная часть картинки кодируется элементарным элементом, а элемент, в свою очередь, кодируется в виде набора цветов (RGB: англ.red – красный, green – зеленый, blue – синий) соответствующей интенсивностью, которая представляется в виде числового значения (наборы этих чисел кодируются в форматах jpeg, png и т.д.). Наконец, итоговые числа кодируются в виде электромагнитных сигналов для передачи по каналам связи или областей. Сами числа при программной обработке представляются в соответствии с принятой системой кодирования чисел.

Различают обратимое и необратимое кодирование. При обратимом можно однозначно восстановить сообщение без потери качества, например, кодирование с помощью азбуки Морзе. При необратимом однозначное восстановление исходного образа невозможно. Например, кодирование аудиовизуальной информации (форматы jpg, mp3 или avi) или хеширование.

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

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

Для кодирования одного символа необходим 1 байт памяти или 8 бит. Cпомощью простой формулы, связывающей количество возможных событий (К) и количество информации (I), вычисляем, сколько не одинаковых символов можно закодировать: К = 2^I = 28 = 256 . Для кодирования текстовой информации используют алфавит мощностью в 256 символов.

Принцип данного кодирования заключается в том, что каждому символу (букве, знаку) соответствует свой двоичный код от 00000000 до 11111111.

Для кодирования букв российского алфавита есть пять разных кодировочных таблиц (КОИ – 8, СР1251, СР866, Мас, ISO). Тексты, закодированные одной таблицей, не будут корректно отображаться в другой кодировке:

Для одного двоичного кода в разных таблицах соответствуют разные символы:

Таблица 1 – Соответствие разных символов двоичному коду

Двоичный код Десятичный код КОИ8 СР1251 СР866 Мас ISO
11000010 194 Б В - - Т

Перекодированием текстовых документов занимаются программы, встроенные в текстовые редакторы и процессоры. С начала 1997 года Microsoft Office поддерживает новую кодировку Unicode, в ней можно закодировать не 256, а 655369 символов (под каждый символ начали отводить 2 байта).

Биты и байты. Цифра, воспринимаемая машиной, таит в себе некоторое количество информации. Оно равно одному биту. Это касается каждой единицы и каждого нуля, которые составляют ту или иную последовательность зашифрованной информации. Соответственно, количество информации в любом случае можно определить, просто зная количество символов в последовательности двоичного кода. Они будут численно равны между собой. 2 цифры в коде несут в себе информацию объемом в 2 бита, 10 цифр – 10 бит и так далее. Принцип определения информационного объема:

Рисунок 1 – определение информационного объема

Проблема целостности информации. Проблема целостности информации с момента ее появления до современности прошла довольно долгий путь. Изначально существовало два способа решения задачи: использование криптографических методов защиты информации и хранения данных и программно-техническое разграничение доступа к данным и ресурсам вычислительных систем. Стоит учесть, что в начале 80–х годов компьютерные системы были слабо распространены, технологии глобальных и локальных вычислительных сетей находились на начальной стадии своего развития, и указанные задачи удавалось достаточно успешно решать.

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

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

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

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

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

Рассмотрим методы взлома компьютерных систем, все попытки подразделяют на 3 группы:
1. Атаки на уровне операционной системы: кража пароля, сканирование жестких дисков компьютера, сборка “мусора” (получение доступа к удаленным объектам в “мусорной” корзине), запуск программы от имени пользователя, модификация кода или данных подсистем и т.д.
2. Атака на уровне систем управления базами данных: 2 сценария, в первом случае результаты арифметических операций над числовыми полями СУБД округляются в меньшую сторону, а разница суммируется в другой записи СУБД, во втором случае хакер получает доступ к статистическим данным
3. Атаки на уровне сетевого программного обеспечения. Сетевое программное обеспечение (СПО) наиболее уязвимо: перехват сообщений на маршрутизаторе, создание ложного маршрутизатора, навязывание сообщений, отказ в обслуживании

Перечислим возможности злоумышленника при реализации угроз, направленных на нарушение целостности передаваемых сообщений и подлинности их авторства:

А) Активный перехват. Нарушитель перехватывает передаваемые сообщения, изменяя их.

Б) Маскарад. Нарушитель посылает документ абоненту B, подписываясь именем абонента A.

В) Ренегатство. Абонент А заявляет, что не посылал сообщения абоненту B, хотя на самом деле посылал. В этом случае абонент А – злоумышленник.

Г) Подмена. Абонент B изменяет/формирует новый документ, заявляя, что получил его от абонента A. Недобросовестный пользователь – получатель сообщения B.

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

H а всех этапах жизненного цикла существует угроза ЦИ (целостности информации):

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

В процессе передачи информации – различного рода помехи как естественного, так и искусственного происхождения. Возможно искажение, уничтожение и перехват информации.

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

В процессе старения – утеря технологий, способных воспроизвести информацию, и физическое старение носителей информации.

Угрозы ЦИ возникают на протяжении всего жизненного цикла информации с момента ее появления до начала утилизации.

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

Обеспечение целостности информации. Для обеспечения ЦИ необходимым условием является наличие высоконадежных технических средств (ТС), включающие в себя аппаратную и/или программную составляющие, и различные программные методы, значительно расширяющие возможности по обеспечению безопасности хранящейся информации . ТС обеспечивает высокую отказоустойчивость и защиту информации от возможных угроз. K ним относят средства защиты от электромагнитного импульса (ЭМИ). Наиболее эффективный метод уменьшения интенсивности ЭМИ – это экранирование – размещение оборудования в электропроводящем корпусе, который препятствует проникновению электромагнитного поля.

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

Антивирусная защита . В настоящее время под компьютерным вирусом принято понимать программный код, обладающий способностью создавать собственные копии и имеющие механизмы, внедряющие эти копии в исполняемые объекты вычислительной системы . Вредоносные программы (вирусы) имеют множество видов и типов, отличаясь между собой лишь способами воздействия на различные файлы, размещением в памяти ЭВМ или программах, объектами воздействия. Главное свойство вирусов, выделяющее их среди множества программ и делающее наиболее опасным, это способность к размножению.

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

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

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

связи беспроводных линий. Информация наиболее уязвима именно на таких участках ИКС. Обеспечение ЦИ достигается засчет уменьшения объема передаваемой информации. Это уменьшение можно достичь за счет оптимального кодирования источника.

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

Стеганография. С этим термином знаком тот,кто занимается криптографией. Выделяют три направления стеганографии: сокрытие данных, цифровые водяные знаки и заголовки. При скрытой передаче информации одновременно с обеспечением конфиденциальности решается и вопрос обеспечения ЦИ. Нельзя изменить того, чего не видишь – главный аргумент использования стеганографии. Ее главный недостаток – больший объем контейнера. Но это можно нивелировать, передавая в качестве контейнера полезную информацию, не критичную к ЦИ.

Резервирование используется при передаче и хранении информации. При передаче возможен многократный повтор сообщения в одно направление либо его рассылка во все возможные направления. Данный подход можно рассматривать как один из методов ПКИ. При хранении идея резервирования достаточно проста – создание копий полученных файлов и их хранение отдельно от первоначальных документов. Зачастую такие хранилища создаются в географически разнесенных местах.

Недостаток резервирования – возможность ее несанкционированного снятия, т.к. информация, располагаемая на внешних устройствах хранения, является незащищенной.

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

  • Андрианов, В.И. «Шпионские штучки» и устройства для защиты объектов и информации: справ. пособие / В.И. Андрианов, В.А. Бородин, А.В. Соколов. С- Пб.: Лань, 1996. – 272с.
  • Баранов, А.П. Проблемы обеспечения информационной безопасности в информационно-телекоммуникационной систем специального назначения и пути их решения // Информационное общество. - 1997. вып.1. - с. 13-17.
  • Количество просмотров публикации: Please wait
    1. Возьмём в качестве примера наш сайт: www.vashmaster.ru
    2. Все тексты сайта написаны и размещены на сайте в кодировке "windows-1251" и об этом браузеру не сообщается
    3. Сервер хостинга автоматически по умолчанию отправляет следующий заголовок:
      Content-Type: text/html; charset=utf-8

    При подобном несовпадении в реальной кодировке сайта и информации о кодировке в заголовке, отправляемом сервером, возникнут проблемы отображения страниц сайта в браузере посетителей.

    Правильная кодировка - это очень важно!

    Попробуем объяснить почему.

    При описанных выше настройках, браузер пользователя не сможет автоматически определить в какой же кодировке написаны тексты на просматриваемом сайте. И скорее всего будет отображать страницы в нечитаемых "кракозябрах". Если вы столкнулись с подобным "недопониманием" между браузером и вашим сайтом, то в срочном порядке необходимо принять соответствующие меры. Иначе, это с большой вероятностью приведёт к череде серьёзных проблем.

    Во-первых , в подобных условиях и настройках сайта, посетителям придётся постоянно в ручную (методом подбора) указывать браузеру кодировку для отображения сайта. Для этого потребуется сделать несколько лишних кликов мышкой. Но согласитесь, не каждому понравится делать лишних 2-3 клика мышкой, чтобы просто увидеть информацию на странице в читабельном виде . Тем более, что очень многие даже и не знают не только как сменить кодировку отображения в настройках браузера, но и что такое кодировка вообще! Большинство посетителей могут решить что сайт заброшен владельцем или кем-нибудь взломан, и постараются на него больше не возвращаться.

    Во-вторых , при неоднозначном определении кодировки страниц сайта, поисковые системы могут не правильно индексировать текстовое содержимое сайта . Что в свою очередь несёт серьёзные проблемы с трафиком пользователей с поисковых систем. Конечно, некоторые поисковые системы могут пытаться по содержимому страниц как-то определить их правильную кодировку, но намного легче от этого не становится. Как правило, проблема всё равно остаётся.

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

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

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

    Решение проблемы с кодировкой сайта

    Мы уже заметили, что все тексты на нашем сайте написаны и передаются в браузер посетителю сайта в кодировке "windows-1251". Что же сделать, дабы сервер, на котором размещён наш сайт, передавал браузеру в заголовке правильную информацию о кодировке? Давайте действовать по порядку...

    1. Чтобы не зависеть от настроек сервера , на всех страницах сайта прямо в коде HTML нужно, используя мета-тег, явно прописать следующую директиву:

    Разместить её необходимо на всех страницах, желательно, сразу же после открывающегося тега . Это позволит браузеру автоматически в момент загрузки и интерпретации страницы выбрать правильную кодировку отображения в соответствии с полученной директивой! Одной этой директивы должно быть достаточно для решения нашей проблемы. Но так задумывалось в теории. А на практике, этой директивы не всегда достаточно. В редких случаях, но бывает так, что браузер в качестве кодировки для отображения страницы выбирает не ту, что указана в директиве на самой странице, а ту, что была передана в заголовке от сервера! И если указанная в двух местах информация о кодировке не совпадает, то проблема может остаться.

    2. Чтобы сервер отдавал в своём ответе правильную информацию о кодировке , необходимо в корне своего сайта создать файл .htaccess и прописать в нём директиву:

    AddDefaultCharset windows-1251

    Тогда сервер продолжит по умолчанию отсылать заголовок о кодировке, но название кодировки будет совпадать с действующей на самом сайте. Ни каких несовпадений в названиях уже не будет.

    Если файл .htaccess уже существует на вашем сервере, то просто добавьте указанную директиву, например, в самом начале. И ни в коем случае не удаляйте без надобности уже существующую в нём информацию!

    Вот и всё решение проблемы. Согласитесь, всё это не так сложно?! Зато очень полезно для профилактики всевозможных проблем с пресловутой кодировкой.

    Выполнив последовательно две перечисленные выше рекомендации, браузеры уже точно не смогут ошибиться в автоматическом выборе правильной кодировки отображения информации на вашем сайте. Всё-таки мы указали однозначно, правильно и даже в двух разных директивах информацию о кодировке!

    Особые ситуации

    Ситуация первая

    Создатели сайтов, а чаще даже сами заказчики начинают самовольно и необдуманно вносить определённые доработки на сайт, размещать тексты так как им вздумается ну и т. д. Вплоть до того, что в результате на сайте могут оказаться разделы с информацией в разных кодировках . Не можем сказать, что это правильный подход, но будем отталкивать оттого, что так бывает и всё тут. В таком случае, даже если мы выполним выше перечисленные две рекомендации, всё равно может возникнуть ситуация, когда сервером будет выдаваться информация об одной кодировке, а в коде HTML страницы будет явно прописана уже другая кодировка. В подобном случае, пожалуй, наиболее простым решением будет следующее.

    Пропишите в файл .htaccess директиву:

    AddDefaultCharset Off

    При использовании данной директивы, сервер просто совсем не будет отсылать заголовок с информацией о кодировке передаваемой страницы. Тогда браузеры будут отталкиваться от данных по кодировке, которые указаны явно в коде HTML на самих страницах сайта. При этом на одной странице данные могут быть в кодировке windows-1251 , а на другой странице, например в utf-8 . Главное, не забыть указать на этих страницах соответствующие мета-теги с информацией о правильной кодировке для распознавания и отображения текста браузером.

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

    Ситуация вторая

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

    Решение подобных разногласий с данными, хранящимися в базе данных, достигается правильной явной установкой настроек кодировки при подключении к базе данных и до выполнения выборок данных из неё. Например, если данные на сайте у нас хранятся в кодировке windows-1251, то и читать данные из базы мы должны в этой же кодировке. Для этого, после выполнения подключения к базе с помощью функции PHP mysql_connect() (или mysql_pconnect()) выполните следующий запрос SQL:

    mysql_query("SET NAMES cp1251");

    Данный запрос, сообщает серверу базы данных MySQL, что все данные хранятся и должны передаваться в кодировке cp1251 (именно такое название кодировки используется в MySQL вместо упоминаемого ранее названия windows-1251, которое используется при передачи данных HTML).

    Но лучше всего изменить кодировку данных в базе MySql на ту, которая используется и на самом сайте. Тогда серверу базы данных не придётся выполнять лишнюю операцию по перекодировки данных из одного формата в другой.

    На заметку

    Если вы посетили сайт, у которого по каким-либо причинам сбилась кодировка, но вам очень нужно получить на нём полезную информацию (не дожидаясь, когда разработчики сайта выполнят вышеперечисленные нами рекомендации), то следует в ручную в настройках браузера указать правильную кодировку страницы. Сделать это можно обычно через основное меню браузера: Вид -> Кодировка -> Далее выберите из списка название предполагаемой кодировки страницы. Возможно, чтобы угадать, вам придётся проделать данную процедуру не один раз, выбирая то одно, то другое название из списка кодировок. Чтобы ускорить процесс подбора, рекомендуем перебирать их в следующем порядке: Кириллица (Windows-1251) , Кириллица (UTF-8) , Кириллица (KOI 8-R) . Это наиболее часто используемые кодировки на сайтах в Рунете.

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

    Актуальность данной темы определяется необходимостью рассматривать вопросы, связанные с кодированием информации, в виду их большой практической значимостью.

    Практическая значимость: материал статьи может быть использован в качестве дополнительного при рассмотрении вопроса о кодировании информации или как учебный материал при проведении семинарского занятия.

    ВВВЕДЕНИЕ.

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

    Любой живой организм, в том числе человек, является носителем генетической информации, которая передается по наследству. Генетическая информация хранится во всех клетках организма в молекулах ДНК (дезоксирибонуклеиновой кислоты). Молекула ДНК человека включает в себя около трех миллиардов пар нуклеотидов, и в ней закодирована вся информация об организме человека: его внешность, здоровье или предрасположенность к болезням, способности и т.д.

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

    Для любой операции над информацией (даже такой простой, как сохранение) она должна быть как-то представлена (записана, зафиксирована). Этот процесс имеет специальное название – кодирование информации.

    ПРЕДСТАВЛЕНИЕ И КОДИРОВАНИЕ ИНФОРМАЦИИ.

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

    Кодирование информации необычайно разнообразно. Указания водителю автомобиля кодируются в виде дорожных знаков. Музыкальное произведение кодируется с помощью знаков нотной грамоты, для записи шахматных партий и химических формул созданы специальные системы записи. Любой грамотный компьютерный пользователь знает о существовании кодировок символов. Географическая карта кодирует информацию о местности. Необходимость кодирования речевой информации возникла в связи с бурным развитием техники связи, особенно мобильной связи. Людьми были придуманы специальные коды: Азбука Брайля, азбука Морзе, флажковая азбука. Таких примеров можно приводить очень много.

    Известно, что одну и ту же информацию мы можем выразить разными способами.

    Например, каким образом вы можете сообщить об опасности?

    • Если на вас напали, вы можете просто крикнуть: “Караул!!” (англичанин крикнет “Неlр me!”).
    • Если прибор находится под высоким напряжением, то требуется оставить предупреждающий знак (рисунок).
    • На оживленном перекрестке регулировщик помогает избежать аварии с помощью жестов.
    • В театре пантомимы вся информация передается зрителю исключительно с помощью мимики и жестов.
    • Если ваш корабль тонет, то вы передадите сигнал “SОS” (...– – –...).
    • На флоте помимо азбуки Морзе используют также семафорную и флажковую сигнализацию.

    Набор знаков, в котором определен их порядок, называется алфавитом.

    Существует множество алфавитов.

    • Алфавит кириллических букв (А, Б, В, Г, Д, Е, ...)
    • Алфавит латинских букв (А, В, С, D, Е, F, ...)
    • Алфавит десятичных цифр(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
    • Алфавит знаков зодиака (^ , _ , ` , a , b , c , d , e , f , g , h , i) и др.

    Имеются, однако, наборы знаков, для которых нет какого-то общепринятого порядка:

    • Набор знаков азбуки Брайля (для слепых);
    • Набор китайских идеограмм;
    • Набор знаков планет;
    • Набор знаков генетического кода (А, Ц, Г, Т).

    Особенно важное значение имеют наборы, состоящие всего из двух знаков:

    • Пара знаков (+, –);
    • Пара знаков “точка”, “тире” (., –)
    • Пара цифр (0, 1).
    • Пара ответов (да, нет).

    Таким образом, кодирование информации – это процесс формирования определенного представления информации. Значимость кодирования возросла в последние десятилетия в связи с внедрением ЭВМ.

    C появлением компьютеров возникла необходимость кодирования всех видов информации, с которыми имеет дело и отдельный человек, и человечество в целом. Пписьменность и арифметика – есть не что иное, как система кодирования речи и числовой информации. Информация никогда не появляется в чистом виде, она всегда как-то представлена, как-то закодирована.

    Основными атрибутами кодирования являются:

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

    Код, знак и язык позволяют передавать информацию в символическом виде, удобном для ее кодирования

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

    ПРАКТИЧЕСКОЕ ПРИМЕНЕНИЕ КОДИРОВАНИЯ ИНФОРМАЦИИ.

    Стенография – это скоростное письмо особыми знаками, настолько краткими, что ими можно записать живую речь. Стенография пришла к нам из древнейших времен. Еще в Древнем Египте скорописцы записывали речь фараонов. Широкое распространение стенография получила в Древней Греции. В 1883 г. в Акрополе была найдена мраморная плита, на которой были высечены стенографические знаки. По мнению ученых, эти записи были сделаны в 350 г. до н.э. Но общепризнанным днем рождения стенографии считается 5 декабря 63 года до н.э. Тогда в Древнем Риме возникла необходимость дословной записи устной речи. Автором древнеримской стенографии считается Тирон – секретарь знаменитого оратора Цицерона.

    В современном мире, несмотря на обилие средств механической фиксации слова (магнитофонов, диктофонов), владение навыками стенографии по-прежнему ценится. Мы записываем в среднем в пять раз медленнее, чем говорим. Стенография же ликвидирует этот разрыв. Она особенно полезна при конспектировании лекций, публичных выступлений, бесед, составлении докладов, подготовке статей и т. п.

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

    Телефонный план нумерации.

    В России используется закрытая десятизначная нумерация. Это значит, что любой полный телефонный номер с кодом региона или мобильной сети должен иметь 10 цифр. Это называется Национальный телефонный номер. При звонке на телефон с отличным от “домашнего” кодом региона понадобится дополнительно набирать код выхода на междугороднюю связь (“8”).

    Персональные данные.

    В последнее время очень актуален вопрос о персональных данных. Персональные данные человека записаны в его паспорте.

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

    Штрих-коды.

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

    В настоящее время в России и за рубежом ведутся большие работы по созданию автоматизированных систем обработки данных с применением машиночитаемых документов (МЧД), одной из разновидностей которых являются документы со штриховыми кодами. К машиночитаемым относятся товаросопроводительные документы, ярлыки и упаковки товаров, чековые книжки и пластиковые карточки для оплаты услуг, магнитные носители. В связи с этим появились термины “электронные ведомости”, “электронные деньги” и т. д.

    Наиболее перспективным и быстроразвивающимся направлением автоматизации процесса ввода информации в ЭВМ является применение штриховых кодов.

    Штриховой код представляет собой чередование темных и светлых полос разной ширины. Структура штрихового кода представлена на слайде.

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

    В настоящее время штриховые коды широко используются не только при производстве и в торговле товарами, но и во многих отраслях промышленного производства.

    Товарный штриховой код присваивается продукции (товару) на этапе запуска его в производство. Штрих-коды получили широкое практическое применение почти во всех сферах деятельности человека (Приложение 3) :

    • Штриховое кодирование помогает в приготовлении медицинских препаратов;
    • Превосходная сортировка;
    • Штрих-коды наводят порядок на складе;
    • Вы можете стать штрих-кодом!
    • Штрих-коды охраняют детей;
    • Общее наблюдение за частной жизнью;
    • Штрих-коды контролируют гарантийное обслуживание;
    • Штрих-коды в аэропорту избежать путаницы;
    • Штрих-коды и скоропортящиеся продукты;
    • Карты безопасности;
    • Штрих-коды следят за заключенными;
    • Газеты в будущем;
    • Штрих-коды помогают найти выгодную цену;
    • Штрих-коды как искусство;
    • Штрих-коды не пропустят `зайцев`;
    • Штрих-коды отлавливают прогульщиков;
    • Процесс выписки рецептов;
    • Штриховое кодирование и медицина;
    • Штрих-коды и гонки Формулы 1;
    • Мобильный телефон вместо билета на концерт;
    • Штрих-код охраняет детей;
    • Шифровка диагнозов заболеваний в листках нетрудоспособности?

    Смайлики.

    Смайликами (от smile – улыбка) в Интернете называют значки, составленные из знаков препинания, букв и цифр, обозначающие какие-то эмоции.

    Смайлик – это лучший способ передать ваши чувства и эмоции при виртуальном общении! Маленькие забавные рожицы, которые вставляются в текст, избавляют от необходимости писать излияния о ваших переживаниях. Считается, что смайлик для Интернета – все равно, что для человечества колесо. Без него невозможно обойтись ни в одной форме виртуального общения. Он крайне прост в употреблении, информативен и при всей своей простоте дает широкий простор воображению. Неудивительно, что его переняли sms-коммуникация, реклама, дизайн, обычная почта, при обмене записками на уроках.

    Смайлики настолько прочно вошли в нашу жизнь, что перекочевали из виртуального пространства в науки. Так в психологии, смайлики используют для обозначения типов темпераментов или отслеживают настроение человека.

    ЗАКЛЮЧЕНИЕ.

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

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

    • Артур Конан Дойль “Пляшущие человечки”;
    • Эдгар По “Золотой жук”;
    • Жюль Верн “Путешествие к центру земли”;
    • Валентин Каверин “Исполнение желаний”;
    • Дэн Браун “Код да Винчи”;
    • Дэвид Кан “Взломщики кодов”.

    Для наглядности представления материала может быть использованы слайды презентации из



    Понравилась статья? Поделиться с друзьями: