Інтернет Windows Android

Ascii двоичная. Кодування ASCII (American standard code for information interchange) - базова кодування тексту для латиниці

Привіт, шановні читачі блогу сайт. Сьогодні ми поговоримо з вами про те, звідки беруться кракозябри на сайті і в програмах, які кодування тексту існують і які з них слід використовувати. Детально розглянемо історію їх розвитку, починаючи від базової ASCII, а також її розширених версій CP866, KOI8-R, Windows-1251 і закінчуючи сучасними кодуваннями консорціуму Юнікод UTF 16 і 8.

Кому-то ці відомості можуть здатися зайвими, але знали б ви, скільки мені приходить питань саме стосовно вилізли кракозябрами (не читав набору символів). Тепер у мене буде можливість відсилати всіх до тексту цієї статті і самостійно відшукувати свої косяки. Ну що ж, приготуйтеся вбирати інформацію і постарайтеся стежити за ходом розповіді.

ASCII - базова кодування тексту для латиниці

Розвиток кодувань текстів відбувалося одночасно з формуванням галузі IT, і вони за цей час встигли зазнати досить багато змін. Історично все починалося з досить-таки не милозвучно в російській вимові EBCDIC, яка дозволяла кодувати літери латинського алфавіту, арабські цифри і знаки пунктуації з керуючими символами.

Але все ж відправною точкою для розвитку сучасних кодувань текстів варто вважати знамениту ASCII (American Standard Code for Information Interchange, яка по-російському звичайно вимовляється як «аски»). Вона описує перші 128 символів з найбільш часто використовуваних англомовними користувачами - латинські букви, арабські цифри і розділові знаки.

Ще в ці 128 знаків, описаних в ASCII, потрапляли деякі службові символи навроде дужок, решіток, зірочок і т.п. Власне, ви самі можете побачити їх:

Саме ці 128 символів з початкового варіант ASCII стали стандартом, і в будь-який інший кодуванні ви їх обов'язково зустрінете і стояти вони будуть саме в такому порядку.

Але справа в тому, що за допомогою одного байта інформації можна закодувати НЕ 128, а цілих 256 різних значень (двійка в ступеня вісім дорівнює 256), тому слідом за базовою версією Аски з'явився цілий ряд розширених кодувань ASCII, В яких можна було крім 128 основних знаків закодувати ще й символи національної кодування (наприклад, російської).

Тут, напевно, варто ще трохи сказати про системи числення, які використовуються при описі. По-перше, як ви всі знаєте, комп'ютер працює тільки з числами в двійковій системі, а саме з нулями і одиницями ( «булева алгебра», якщо хто проходив в інституті або в школі). , Кожен з яких представляє з себе двійку в ступені, починаючи з нульової, і до двійки в сьомий:

Не важко зрозуміти, що всіх можливих комбінацій нулів і одиниць в такій конструкції може бути тільки 256. Перекладати число з двійкової системи в десяткову досить просто. Потрібно просто скласти всі ступені двійки, над якими стоять одиниці.

У нашому прикладі це виходить 1 (2 певною мірою нуль) плюс 8 (два в ступені 3), плюс 32 (двійка в п'ятого ступеня), плюс 64 (в шостий), плюс 128 (в сьомий). Разом отримує 233 в десятковій системі числення. Як бачите, все дуже просто.

Але якщо ви придивитеся до таблиці з символами ASCII, то побачите, що вони представлені в шістнадцятковій кодуванні. Наприклад, «зірочка» відповідає в Аски шістнадцятиричним числу 2A. Напевно, вам відомо, що в шістнадцятковій системі числення використовуються крім арабських цифр ще й латинські літери від A (означає десять) до F (означає п'ятнадцять).

Ну так от, для перекладу двійкового числа в шістнадцяткове вдаються до наступного простому і наочному способу. Кожен байт інформації розбивають на дві частини по чотири біта, як показано на наведеному вище скріншоті. Т.ч. в кожній половинці байта двійковим кодом можна закодувати тільки шістнадцять значень (два в четвертого ступеня), що можна легко уявити шістнадцятковим числом.

Причому, в лівій половині байта вважати ступеня потрібно буде знову починаючи з нульової, а не так, як показано на скріншоті. В результаті, шляхом нехитрих обчислень, ми отримаємо, що на скріншоті закодовано число E9. Сподіваюся, що хід моїх міркувань і розгадка даного ребуса вам виявилися зрозумілі. Ну, а тепер продовжимо, власне, говорити про кодування тексту.

Розширені версії Аски - кодування CP866 і KOI8-R з псевдографікою

Отже, ми з вами почали говорити про ASCII, яка була як би відправною точкою для розвитку всіх сучасних кодувань (Windows 1251, юнікод, UTF 8).

Спочатку в неї було закладено тільки 128 знаків латинського алфавіту, арабських цифр і ще чогось там, але в розширеній версії з'явилася можливість використовувати всі 256 значень, які можна закодувати в одному байті інформації. Тобто з'явилася можливість додати в Аски символи букв своєї мови.

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

Зрозуміло, що за самі векторні форми відповідають шрифти, а ось за кодування відповідає операційна система і які використовуються в ній програми. Тобто будь-який текст на вашому комп'ютері буде являти собою набір байтів, в кожному з яких закодований один єдиний символ цього самого тексту.

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

Значить, щоб закодувати будь-який потрібний нам символ (наприклад, з національного алфавіту), має бути виконано дві умови - векторна форма цього знака повинна бути в використовуваному шрифті і цей символ можна було б закодувати в розширених кодуваннях ASCII в один байт. Тому таких варіантів існує ціла купа. Тільки лише для кодування символів російської мови існує кілька різновидів розширеної Аски.

Наприклад, спочатку з'явилася CP866, В якій була можливість використовувати символи російського алфавіту і вона була розширеною версією ASCII.

Тобто її верхня частина повністю збігалася з базовою версією Аски (128 символів латиниці, цифр і ще всякої лабуди), яка представлена \u200b\u200bна наведеному трохи вище скріншоті, а ось вже нижня частина таблиці з кодуванням CP866 мала вказаний на скріншоті трохи нижче вид і дозволяла закодувати ще 128 знаків (російські літери і всяка там псевдографіка):

Бачите, в правій колонці цифри починаються з 8, тому що числа з 0 до 7 відносяться до базової частини ASCII (див. перший скріншот). Т.ч. російська буква «М» в CP866 матиме код 9С (вона знаходиться на перетині відповідних рядка з 9 і стовпці з цифрою С в шістнадцятковій системі числення), який можна записати в одному байті інформації, і при наявності відповідного шрифту з російськими символами ця буква без проблем відобразиться в тексті.

Звідки взялося таке кількість псевдографіки в CP866? Тут вся справа в тому, що це кодування для російського тексту розроблялася ще в ті волохаті року, коли не було такого поширення графічних операційних систем як зараз. А в Досі, і подібних їй текстових операционках, псевдографіка дозволяла хоч якось урізноманітнити оформлення текстів і тому нею рясніє CP866 і всі інші її ровесниці з розряду розширених версій Аски.

CP866 поширювала компанія IBM, але крім цього для символів російської мови були розроблені ще ряд кодувань, наприклад, до цього ж типу (розширених ASCII) можна віднести KOI8-R:

Принцип її роботи залишився той же самий, що і у описаної раніше CP866 - кожен символ тексту кодується одним єдиним байтом. На скріншоті показана друга половина таблиці KOI8-R, тому що перша половина повністю відповідає базовій Аски, яка показана на першому скріншоті в цій статті.

Серед особливостей кодування KOI8-R можна відзначити те, що російські букви в її таблиці йдуть не в алфавітному порядку, як це, наприклад, зробили в CP866.

Якщо подивитеся на найперший скріншот (базової частини, яка входить в усі розширені кодування), то помітите, що в KOI8-R російські літери розташовані в тих же елементах таблиці, що і співзвучні їм літери латинського алфавіту з першої частини таблиці. Це було зроблено для зручності переходу з російських символів на латинські шляхом відкидання всього одного біта (два в сьомий ступеня або 128).

Windows-1251 - сучасна версія ASCII і чому вилазять кракозябри

Подальший розвиток кодувань тексту було пов'язано з тим, що набирали популярність графічні операційні системи і необхідність використання псевдографіки в них з часом зникла. В результаті виникла ціла група, яка за своєю суттю і раніше були розширеними версіями Аски (один символ тексту кодується всього одним байтом інформації), але вже без використання символів псевдографіки.

Вони ставилися до так званим ANSI кодувань, які були розроблені американським інститутом стандартизації. У просторіччі ще використовувалося назву кирилиця для варіанту з підтримкою російської мови. Прикладом такої може служити.

Вона вигідно відрізнялася від використовуваних раніше CP866 і KOI8-R тим, що місце символів псевдографіки в ній зайняли відсутні символи російської типографіки (окрім знака наголоси), а також символи, які використовуються в близьких до російського слов'янських мовах (українській, білоруській і т.д. ):

Через такої великої кількості кодувань російської мови, у виробників шрифтів і виробників програмного забезпечення постійно виникала головний біль, а у нас з вам, шановні читачі, часто вилазили ті самі горезвісні кракозябри, Коли відбувалася плутанина з використовуваної в тексті версією.

Дуже часто вони вилазили при відправці і отриманні повідомлень по електронній пошті, що спричинило за собою створення дуже складних перекодіровочний таблиць, які, власне, вирішити цю проблему в корені не змогли, і часто користувачі для листування використовували, щоб уникнути горезвісних кракозябрами при використанні російських кодувань подібних CP866, KOI8-R або Windows 1251.

По суті, кракозябри, вилазящіе замість російського тексту, були результатом некоректного використання кодування даного мови, Яка не відповідала тій, в якій було закодовано текстове повідомлення спочатку.

Припустимо, якщо символи, закодовані за допомогою CP866, спробувати відобразити, використовуючи кодову таблицю Windows 1251, то ці самі кракозябри (безглуздий набір знаків) і вилізуть, повністю замінивши собою текст повідомлення.

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

Зрештою така ситуація з безліччю кодувань і постійно вилазять кракозябрами багатьом набридла, з'явилися передумови до створення нової універсальної варіації, яка б замінила собою всі існуючі і вирішила б, нарешті, на корені проблему з появою не читав текстів. Крім цього існувала проблема мов подібних китайському, де символів мови було набагато більше, ніж 256.

Юнікод (Unicode) - універсальні кодування UTF 8, 16 і 32

Ці тисячі знаків мовної групи південно-східній Азії ніяк неможливо було описати в одному байті інформації, який виділявся для кодування символів в розширених версіях ASCII. В результаті був створений консорціум під назвою Юнікод (Unicode - Unicode Consortium) при співпраці багатьох лідерів IT індустрії (ті, хто виробляє софт, хто кодує залізо, хто створює шрифти), які були зацікавлені в появі універсального кодування тексту.

Першою варіацією, що вийшла під егідою консорціуму Юнікод, була UTF 32. Цифра в назві кодування означає кількість біт, яке використовується для кодування одного символу. 32 біта становлять 4 байта інформації, які знадобляться для кодування одного єдиного знака в новій універсальній кодуванні UTF.

В результаті чого, один і той же файл з текстом, закодований в розширеній версії ASCII і в UTF-32, в останньому випадку буде мати розмір (важити) в чотири рази більше. Це погано, але зате тепер у нас з'явилася можливість закодувати за допомогою ЮТФ число знаків, що дорівнює двом в тридцять другого ступеня ( мільярди символів, Які покриють будь реально необхідне значення з колосальним запасом).

Але багатьом країнам з мовами європейської групи таку величезну кількість знаків використовувати в кодуванні зовсім і не було необхідності, однак при залученні UTF-32 вони ні за що ні про що отримували чотириразове збільшення ваги текстових документів, а в результаті і збільшення обсягу інтернет трафіку і обсягу збережених даних. Це багато, і таке марнотратство собі ніхто не міг дозволити.

В результаті розвитку Юникода з'явилася UTF-16, Яка вийшла настільки вдалою, що була прийнята за замовчуванням як базове простір для всіх символів, які у нас використовуються. Вона використовує два байта для кодування одного знака. Давайте подивимося, як ця справа виглядає.

В операційній системі Windows ви можете пройти по шляху «Пуск» - «Програми» - «Стандартні» - «Службові» - «Таблиця символів». В результаті відкриється таблиця з векторними формами всіх встановлених у вас в системі шрифтів. Якщо ви виберете в «Додаткових параметрах» набір знаків Юнікод, то зможете побачити для кожного шрифту окремо весь асортимент входять до нього символів.

До речі, клацнувши по будь-якому з них, ви зможете побачити його багатобайтових код в форматі UTF-16, Що складається з чотирьох шістнадцятирічних цифр:

Скільки символів можна закодувати в UTF-16 за допомогою 16 біт? 65 536 (два в ступені шістнадцять), і саме це число було прийнято за базову простір в Юникоде. Крім цього існують способи закодувати за допомогою неї і близько двох мільйонів знаків, але обмежилися розширеним простором в мільйон символів тексту.

Але навіть ця вдала версія кодування Юнікоду не принесла особливого задоволення тим, хто писав, припустимо, програми тільки на англійською, Бо у них, після переходу від розширеної версії ASCII до UTF-16, вага документів збільшувався в два рази (один байт на один символ в Аски і два байта на той же самий символ в ЮТФ-16).

Ось саме для задоволення всіх і вся в консорціумі Unicode було вирішено придумати кодування змінної довжини. Її назвали UTF-8. Незважаючи на вісімку в назві, вона дійсно має змінну довжину, тобто кожен символ тексту може бути закодований в послідовність довжиною від одного до шести байт.

На практиці ж в UTF-8 використовується тільки діапазон від одного до чотирьох байт, тому що за чотирма байтами коду нічого вже навіть теоретично не можливо уявити. Всі латинські знаки в ній кодуються в один байт, так само як і в старій добрій ASCII.

Що примітно, в разі кодування тільки латиниці, навіть ті програми, які не розуміють Юнікод, все одно прочитають те, що закодовано в ЮТФ-8. Тобто базова частина Аски просто перейшла в це дітище консорціуму Unicode.

Кириличні ж знаки в UTF-8 кодуються в два байта, а, наприклад, грузинські - в три байта. Консорціум Юнікод після створення UTF 16 і 8 вирішив основну проблему - тепер у нас в шрифтах існує єдине кодове простір. І тепер їх виробникам залишається тільки виходячи зі своїх сил і можливостей заповнювати його векторними формами символів тексту. Зараз в набори навіть.

У наведеній трохи вище «Таблиці символів» видно, що різні шрифти підтримують різну кількість знаків. Деякі насичені символами Юнікоду шрифти можуть важити дуже пристойно. Але зате тепер вони відрізняються не тим, що вони створені для різних кодувань, а тим, що виробник шрифту заповнив або не заповнить єдине кодове простір тими чи іншими векторними формами до кінця.

Кракозябри замість російських букв - як виправити

Давайте тепер подивимося, як з'являються замість тексту кракозябри або, іншими словами, як вибирається правильна кодування для російського тексту. Власне, вона задається в тій програмі, в якій ви створюєте або редагуєте цей самий текст, або ж код з використанням текстових фрагментів.

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

У верхньому меню Notepad ++ є пункт «Кодування», де у вас буде можливість перетворити вже наявний варіант в той, який використовується на вашому сайті за замовчуванням:

У разі сайту на Joomla 1.5 і вище, а також в разі блогу на WordPress слід в уникненні появи кракозябрами вибирати варіант UTF 8 без BOM. А що таке приставка BOM?

Справа в тому, що коли розробляли кодування ЮТФ-16, для чогось вирішили прикрутити до неї таку річ, як можливість записувати код символу, як в прямій послідовності (наприклад, 0A15), так і в зворотному (150A). А для того, щоб програми розуміли, в якій саме послідовності читати коди, і був придуманий BOM (Byte Order Mark або, іншими словами, сигнатура), яка виражалася в додаванні трьох додаткових байтів в самий початок документів.

У кодуванні UTF-8 ніяких BOM передбачено в консорціумі Юнікод не було і тому додавання сигнатури (цих самих горезвісних додаткових трьох байтів в початок документа) деякими програмами просто-напросто заважає читати код. Тому ми завжди при збереженні файлів в ЮТФ повинні вибирати варіант без BOM (без сигнатури). Таким чином, ви заздалегідь убезпечите себе від того, що вилазить кракозябрами.

Що примітно, деякі програми в Windows не вміють цього робити (не вміють зберігати текст в ЮТФ-8 без BOM), наприклад, все той же горезвісний Блокнот Windows. Він зберігає документ в UTF-8, але все одно додає в його початок сигнатуру (три додаткових байта). Причому ці байти будуть завжди одні й ті ж - читати код в прямій послідовності. Але на серверах через цю дрібниці може виникнути проблема - вилізуть кракозябри.

Тому ні в якому разі не користуйтеся звичайним блокнотом Windows для редагування документів вашого сайту, якщо не хочете появи кракозябрами. Кращим і найбільш простим варіантом я вважаю вже згаданий редактор Notepad ++, який практично не має недоліків і складається з одних лише достоїнств.

У Notepad ++ при виборі кодування у вас буде можливість перетворити текст в кодування UCS-2, яка за своєю суттю дуже близька до стандарту Юнікод. Також в Нотепаде можна буде закодувати текст в ANSI, тобто стосовно до російської мови це буде вже описана нами трохи вище Windows 1251. Звідки береться ця інформація?

Вона прописана в реєстрі вашої операційної системи Windows - яке кодування вибирати в разі ANSI, яку обирати в разі OEM (для російської мови це буде CP866). Якщо ви встановите на своєму комп'ютері іншу мову за замовчуванням, то і ці кодування будуть замінені на аналогічні з розряду ANSI або OEM для того самого мови.

Після того, як ви в Notepad ++ збережіть документ в потрібній вам кодуванні або ж відкриєте документ з сайту для редагування, то в правому нижньому кутку редактора зможете побачити її назва:

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

Взагалі, у всіх мовах гіпертекстової розмітки крім Html використовується спеціальне оголошення xml, в якому вказується кодування тексту.

Перш, ніж почати розбирати код, браузер дізнається, яка версія використовується і як саме потрібно інтерпретувати коди символів цієї мови. Але що примітно, в разі, якщо ви зберігаєте документ в прийнятому за замовчуванням юникоде, то це оголошення xml можна буде опустити (кодування буде вважатися UTF-8, якщо немає BOM або ЮТФ-16, якщо BOM є).

У разі ж документа мови Html для вказівки кодування використовується елемент Meta, Який прописується між відкриває і закриває тегом Head:

... ...

Ця запис досить сильно відрізняється від прийнятої в, але повністю відповідає новому впроваджуваного потихеньку стандарту Html 5, і вона буде стовідсотково правильно зрозуміла будь-якими використовуваними на поточний момент браузерами.

За ідеєю, елемент Meta із зазначенням кодування Html документа краще буде ставити якомога вище в шапці документа, Щоб на момент зустрічі в тексті першого знака не з базової ANSI (які правильно прочитали завжди і в будь-який варіації) браузер вже повинен мати інформацію про те, як інтерпретувати коди цих символів.

Удачі вам! До швидких зустрічей на сторінках блогу сайт

подивитися ще ролики можна перейшовши на
");">

Вам може бути цікаво

Що таке URL адреси, чим відрізняються абсолютні та відносні посилання для сайту
OpenServer - сучасний локальний сервер і приклад його використання для установки WordPress на комп'ютер
Що таке Chmod, які права доступу призначати файлів і папок (777, 755, 666) і як це зробити через PHP
Пошук Яндекса по сайту і інтернет-магазину

Excel для Office 365 Word для Office 365 Outlook для Office 365 PowerPoint для Office 365 Publisher для Office 365 Excel 2019 Word 2019 Outlook 2019 PowerPoint 2019 OneNote 2016 Publisher 2019 Visio професійний 2019 Visio стандартний 2019 Excel 2016 Word 2016 Outlook 2016 PowerPoint 2016 OneNote 2013 Publisher 2016 Visio 2013 Visio професійний 2016 Visio стандартний 2016 Excel 2013 Word 2013 Outlook 2013 PowerPoint 2013 Publisher 2013 Excel 2010 Word 2010 Outlook 2010. програмі PowerPoint 2010 OneNote 2010 Publisher 2010 Visio 2010 Excel 2007 Word 2007 Outlook 2007 PowerPoint 2007 Publisher 2007 Access 2007 Visio 2007 OneNote 2007 Office 2010 Visio Standard 2007 Visio 2010 стандартна менше

В цій статті

Вставка символу ASCII або Юнікоду в документ

Якщо вам потрібно ввести тільки кілька спеціальних знаків або символів, можна використовувати або поєднання клавіш. перелік символів ASCII см. в наступних таблицях або статті Вставка букв національних алфавітів за допомогою сполучень клавіш.

Примітки:

Вставка символів ASCII

Щоб вставити символ ASCII, натисніть і утримуйте клавішу ALT, вводячи код символу. Наприклад, щоб вставити символ градуса (º), натисніть і утримуйте клавішу ALT, а потім введіть 0176 на цифровій клавіатурі.

Для введення чисел за допомогою клавіатури, А не цифри на основній клавіатурі. Якщо на цифровій клавіатурі необхідно ввести цифри, переконайтеся, що включений індикатор NUM LOCK.

Вставка символів Юнікоду

Щоб вставити символ Юнікоду, введіть код символу, потім послідовно натисніть клавіші ALT і X. Наприклад, щоб вставити символ долара ($), введіть 0024 і послідовно натисніть клавіші ALT і X. Всі коди символів Юнікоду см. в.

важливо: деякі програми Microsoft Office, наприклад PowerPoint і InfoPath, не підтримують перетворення кодів Юнікоду в символи. Якщо вам необхідно вставити символ Юнікоду в одній з таких програм, використовуйте.

Примітки:

    Якщо після натискання клавіш ALT + X відображається неправильний символ Юнікоду, виберіть правильний код, а потім знову натисніть ALT + X.

    Крім того, перед кодом слід ввести "U +". Наприклад, якщо ввести "1U + B5" і натиснути клавіші ALT + X, відобразиться текст "1μ", а при послідовному введенні "1B5" і натиснути клавіші ALT + X, відобразиться символ "Ƶ".

Використання таблиці символів

Таблиця символів - це програма, вбудована в Microsoft Windows, Яка дозволяє переглядати символи, доступні для обраного шрифту.

За допомогою таблиці символів можна копіювати окремі символи або групу символів в буфер обміну і вставляти їх в будь-яку програму, що підтримує відображення цих символів. Відкриття таблиці символів

    У Windows 10 Введіть слово "символ" в поле пошуку на панелі завдань і виберіть таблицю символів в результатах пошуку.

    У Windows 8 Введіть слово "символ" на початковому екрані і виберіть таблицю символів в результатах пошуку.

    У Windows 7 натисніть кнопку Пуск, Послідовно виберіть всі програми, стандартні, службові і клацніть Таблиця символів.

Символи групуються за шрифтом. Клацніть список шрифтів, щоб вибрати відповідний набір символів. Щоб вибрати символ, клацніть його, потім натисніть кнопку вибрати. Щоб вставити символ, клацніть правою кнопкою миші потрібне місце в документі і виберіть вставити.

Коди часто використовуваних символів

Повний список символів см. В на комп'ютері, таблиці кодів символів ASCII або таблицях символів Юнікоду, упорядкованих за розділами.

гліф

гліф

грошові одиниці

Юридичні символи

математичні символи

дробу

Знаки пунктуації та діалектні символи

символи форм

Коди часто використовуваних діакритичних знаків

Повний список гліфів та відповідних кодів см. В.

гліф

гліф

Недруковані керуючі знаки ASCII

Знаки, що використовуються для управління деякими периферійними пристроями, Наприклад принтерами, в таблиці ASCII мають номера 0-31. Наприклад, знаку перекладу сторінки / нової сторінки відповідає номер 12. Цей знак вказує принтеру перейти до початку наступної сторінки.

Таблиця недрукованих керуючих символів ASCII

десяткове число

знак

десяткове число

знак

Звільнення каналу даних

початок заголовка

Перший код управління пристроєм

початок тексту

Другий код управління пристроєм

кінець тексту

Третій код управління пристроєм

кінець передачі

Четвертий код управління пристроєм

п'ятикутна

негативне підтвердження

підтвердження

Синхронний режим передачі

Звуковий сигнал

Кінець блоку переданих даних

горизонтальна табуляція

кінець носія

Переклад рядка / новий рядок

символ заміни

вертикальна табуляція

перевищувати

Переклад сторінки / нова сторінка

дванадцятий

роздільник файлів

повернення каретки

роздільник груп

Зрушення без збереження розрядів

роздільник записів

Зрушення зі збереженням розрядів

п'ятнадцяти

роздільник даних

У комп'ютері розуміється процес її перетворення в форму, що дозволяє організувати більш зручну передачу, зберігання або автоматичну переробку цих даних. З цією метою використовуються різні таблиці. Кодування ASCII - це перша система, розроблена в Сполучених Штатах для роботи з англомовним текстом, яка отримала згодом поширення у всьому світі. Її опису, особливостям, властивостям і подальшого використання присвячено окрему статтю, представлена \u200b\u200bнижче.

Відображення і зберігання інформації в ЕОМ

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

Як все починалося

Історично склалося так, що перші ЕОМ були англомовними. Для кодування символьної інформації в них було достатньо використовувати всього лише 7 біт пам'яті, тоді як для цієї мети виділявся 1 байт, що складається з 8 бітів. Кількість знаків, що розуміються комп'ютером в такому випадку, дорівнювало 128. У число таких символів входили англійський алфавіт з його знаками пунктуації, числа і деякі спеціальні символи. Англомовна семібітная кодування з відповідною таблицею (кодовою сторінкою), розроблена в 1963 році, була названа American Standard Code for Information Interchange. Зазвичай для її позначення використовувалася і використовується і до цього дня абревіатура «Кодування ASCII».

Перехід до багатомовності

Згодом комп'ютери стали широко використовуватися і в неангломовних країнах. У зв'язку з цим з'явилася потреба в кодуваннях, що дозволяють використовувати національні мови. Було вирішено не винаходити велосипед, і взяти за основу ASCII. Таблиця кодування в новій редакції значно розширилася. Використання 8-го біта дозволило переводити на комп'ютерну мову вже 256 символів.

опис

Кодування ASCII має таблицю, яка ділиться на 2 частини. Загальноприйнятим міжнародним стандартом прийнято вважати лише її першу половину. У неї входять:

  • Символи з порядковими номерами від 0 до 31, які кодуються послідовностями від 00000000 до 00011111. Вони відведені для керуючих символів, які обіймають керівні посади процесом виведення тексту на екран або принтер, подачею звукового сигналу і т. П.
  • Символи з NN в таблиці від 32 до 127, які кодуються послідовностями від 00100000 до 01111111 складають стандартну частину таблиці. В їх число входять пробіл (N 32), букви латинського алфавіту (великі та малі), десятизначні цифри від 0 до 9, знаки пунктуації, дужки різного накреслення та інші символи.
  • Символи з порядковими номерами від 128 до 255, які кодуються послідовностями від 10000000 до 11111111. В їх число включені букви національних алфавітів, відмінні від латинського. Саме ця альтернативна частина таблиці кодування ASCII використовується для перетворення в комп'ютерну форму російських символів.

деякі властивості

До особливостей кодування ASCII відноситься відміну букв «A» - «Z» нижнього і верхнього регістрів тільки одним бітом. Ця обставина значно спрощує перетворення регістру, а також його перевірку на приналежність до заданому діапазону значень. Крім того, всі букви в сістемаа кодування ASCII представляються власними порядковими номерами в алфавіті, які записані 5 цифрами в двійковій системі числення, перед якими для букв нижнього регістру варто 011 2, а верхнього - 010 2.

До числа особливостей кодування ASCII можна зарахувати і уявлення 10 цифр - «0» - «9». У другій системі числення вони починаються з 00112, а закінчуються 2-ми значеннями чисел. Так, 0101 2 еквівалентно десятковому числу п'ять, тому символ «5» записується як 0011 01012. Спираючись на сказане, можна легко перетворити двійковій-десяткові числа в рядок в кодуванні ASCII за допомогою додавання зліва бітової послідовності 00112 до кожного напівбайтів.

"Юнікод"

Як відомо, для відображення текстів на мовах групи південно-східній Азії потрібні тисячі знаків. Таке їх кількість ніяк не описується в одному байті інформації, тому навіть розширені версії ASCII вже не могли задовольняти зрослі потреби користувачів з різних країн.

Так, виникла необхідність створення універсального кодування тексту, розробкою якої при співробітництві з багатьма лідерами світової IT-індустрії зайнявся консорціум "Юнікод". Його фахівцями була створена система UTF 32. У ній для кодування 1 символу виділялося 32 біта, що становлять 4 байта інформації. Головним недоліком було різке збільшення обсягу необхідної пам'яті в цілих 4 рази, що тягло за собою безліч проблем.

У той же час для більшості країн з офіційними мовами, які належать до індоєвропейської групи, кількість знаків, що дорівнює 2 32, є більш ніж надмірною.

В результаті подальшої роботи фахівців з консорціуму "Юнікод" з'явилася кодування UTF-16. Вона стала тим варіантом перетворення символьної інформації, яка влаштувала всіх як за обсягом необхідної пам'яті, так і за кількістю кодованих символів. Саме тому UTF-16 була прийнята за замовчуванням і в ній для одного знака потрібно зарезервувати 2 байта.

Навіть ця досить просунута і вдала версія "Юникода" мала деякі недоліки, і після переходу від розширеної версії ASCII до UTF-16 збільшувала вагу документа в два рази.

У зв'язку з цим було вирішено використовувати кодування змінної довжини UTF-8. У такому випадку кожен символ вихідного тексту кодується послідовністю довжиною від 1 до 6 байт.

Зв'язок з American standard code for information interchange

Всі знаки латинського алфавіту в UTF-8 змінної довжини кодуються в 1 байт, як в системі кодування ASCII.

Особливістю ЮТФ-8 є те, що в разі тексту на латиниці без використання інших символів, навіть програми, які не розуміють "Юнікод", все одно дозволять його прочитати. Іншими словами, базова частина кодування тексту ASCII просто переходить до складу нової UTF змінної довжини. Кириличні знаки в ЮТФ-8 займають 2 байти, а, наприклад, грузинські - 3 байта. Створенням UTF-16 і 8 була вирішена основна проблема створення єдиного кодового простору в шрифтах. З тих пір виробникам шрифтів залишається тільки заповнювати таблицю векторними формами символів тексту виходячи зі своїх потреб.

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

Тепер ви знаєте, скільки символів в кодуванні ASCII і, як і чому вона була розроблена. Звичайно, сьогодні найбільшого поширення в світі отримав стандарт "Юнікод". Однак не можна забувати, що він створений на базі ASCII, тому слід належним чином оцінювати внесок його розробників в сферу IT.

Для того, щоб грамотно використовувати ASCII, необхідно розширити знання в даній сфері і про можливості кодування.

Що це таке?

ASCII представляє собою кодіровочние таблицю друкованих символів (див. Скріншот №1), що набирають на комп'ютерній клавіатурі, для передачі інформації і деяких кодів. Іншими словами відбувається кодування алфавіту і десяткових цифр у відповідні символи, що представляють і які несуть у собі необхідну інформацію.

Кодування ASCII була розроблена в Америці, тому стандартна кодировочная таблиця зазвичай включає в себе англійський алфавіт з цифрами, що в цілому становить близько 128 символів. Але тоді виникає справедливе запитання: що робити, якщо необхідна кодування національного алфавіту?

Для вирішення подібних питань були розроблені інші версії таблиці ASCII. Наприклад, для мов з іншомовної структурою були або прибрані літери англійського алфавіту, або до них додавалися додаткові символи у вигляді національного алфавіту. Так, в кодуванні ASCII можуть бути присутніми російські літери для національного використання (див. Скріншот №2).

Де застосовується система кодування ASCII?

Дана кодировочная система необхідна не тільки для набору текстової інформації на клавіатурі. Вона також використовується в графіку. Наприклад, в програмі ASCII Art Maker графічні зображення різних розширень складаються з спектра символів кодування ASCII (див. Скріншот №3).


Як правило, подібні програми можна розділити на ті, що виконують функцію графічних редакторів, Інвертуємо зображення в текст, і на ті, що конвертують зображення в ASCII-графік. Всім відомий смайлик (або як його ще називають « усміхнене людське обличчя») Теж є прикладом кодіровочние символу.

Даний метод кодування також може бути затребуваний під час написання або створення документа HTML. Наприклад, ви вводите певний і необхідний вам набір знаків, а при перегляді самої сторінки на екран буде виведений символ, який відповідає цьому коду.

Крім усього іншого даний вид кодування необхідний при створенні багатомовного сайту, тому що знаки, які не входять в ту чи іншу національну таблицю, потрібно буде замінити ASCII кодами. Якщо читач безпосередньо пов'язаний з інформаційно-комунікативними технологіями (ІКТ), то йому буде корисно ознайомитися і з такими системами як:

  1. Стерпний набір символів;
  2. Керуючі символи;
  3. EBCDIC;
  4. VISCII;
  5. YUSCII;
  6. Юнікод;
  7. ASCII art;
  8. ЯКІ-8.

Властивості таблиці ASCII

Як і будь-яка систематизована програма, ASCII володіє своїми характерними властивостями. Так, наприклад, десятеричная система обчислення (цифри від 0 до 9) перетвориться в двійкову систему числення (тобто кожна десятеричная цифра перетвориться в двійкову 288 \u003d 1001000 відповідно).

Букви, розташовані у верхніх і нижніх колонках, відрізняються один від одного лише бітом, що істотно знижує рівень складності перевірки і редагування регістра.

При всіх цих властивостях кодування ASCII працює як восьми бітна, хоча спочатку передбачалася як семи бітна.

Застосування ASCII в програмах Microsoft Office:

У разі необхідності даний варіант кодування інформації може бути використаний в Microsoft Notepad і Microsoft Office Word. В рамках цих програм документ може бути збережений у форматі ASCII, але в цьому випадку при наборі тексту неможливо буде використання деяких функцій.

Зокрема, буде недоступно виділення жирним і напівжирним шрифтом, тому що кодування зберігає лише сенс набраної інформації, а не загальний вигляд і форму. Додати такі коди в документ ви можете за допомогою наступних програмних додатків:

  • Microsoft Excel;
  • Microsoft FrontPage;
  • Microsoft InfoPath;
  • Microsoft OneNote;
  • Microsoft Outlook;
  • Microsoft PowerPoint;
  • Microsoft Project.

При цьому варто враховувати, що набираючи код ASCII в цих додатках необхідно утримувати клавіатурну клавішу ALT.

Звичайно, всі необхідні коди вимагає більш тривалого і докладного вивчення, але це виходить за межі нашої сьогоднішньої статті. Сподіваюся, що вона виявилася для Вас дійсно корисною.

До нової зустрічі!

Добре погано

Згадаймо деякі відомі нам факти:

Безліч символів, за допомогою яких записується текст, називається алфавітом.

Число символів в алфавіті - це його потужність.

Формула визначення кількості інформації: N \u003d 2 b,

де N - потужність алфавіту (кількість символів),

b - кількість біт (інформаційний вагу символу).

В алфавіт потужністю 256 символів можна помістити практично всі необхідні символи. Такий алфавіт називається достатнім.

Оскільки 256 \u003d 2 8 , То вага 1 символу - 8 біт.

Одиниці виміру 8 біт присвоїли назву 1 байт:

1 байт \u003d 8 біт.

Двійковий код кожного символу в комп'ютерному тексті займає 1 байт пам'яті.

Яким же чином текстова інформація представлена \u200b\u200bв пам'яті комп'ютера?

Кодування полягає в тому, що кожному символу ставиться у відповідність унікальний десятковий код від 0 до 255 або відповідний йому двійковий код від 00000000 до 11111111. Таким чином, людина розрізняє символи за їх зображенню, а комп'ютер - по їх коду.

Зручність побайтового кодування символів очевидно, оскільки байт - найменша адресується частина пам'яті і, отже, процесор може звернутися до кожного символу окремо, виконуючи обробку тексту. З іншого боку, 256 символів - це цілком достатня кількість для подання найрізноманітнішої символьної інформації.

Тепер виникає питання, який саме восьмизарядний двійкового коду поставити у відповідність кожному символу.

Зрозуміло, що це справа умовне, можна придумати безліч способів кодування.

Міжнародним стандартом для ПК стала таблиця ASCII (Читається аски) (Американський стандартний код для інформаційного обміну).

Міжнародним стандартом є лише перша половина таблиці, тобто символи з номерами від 0 (00000000), до 127 (01111111).

Порядковий номер

символ

00000000 - 00011111


Їх функція - управління процесом виведення тексту на екран або друк, подача звукового сигналу, розмітка тексту і т.п.

32 - 127

00100000 - 01111111


128 - 255

10000000 - 11111111


Друга половина кодової таблиці ASCII, звана кодовою сторінкою (128 кодів, починаючи з 10000000 і закінчуючи 11111111), може мати різні варіанти, кожен варіант має свій номер.


Звертаю вашу увагу на те, що в таблиці кодування букви (великі та малі) розташовуються в алфавітному порядку, а цифри впорядковані за зростанням значень. Таке дотримання лексикографічного порядку в розташуванні символів називається принципом послідовного кодування алфавіту.


Найбільш поширеною в даний час є кодування Microsoft Windows, що позначається скороченням CP1251.

З кінця 90-х років проблема стандартизації символьного кодування вирішується введенням нового міжнародного стандарту, який називається Unicode . Це 16-розрядна кодування, тобто в ній на кожен символ відводиться 2 байти пам'яті. Звичайно, при цьому обсяг займаної пам'яті збільшується в 2 рази. Але зате така кодова таблиця допускає включення до 65536 символів. Повна специфікація стандарту Unicode включає в себе всі існуючі, вимерлі і штучно створені алфавіти світу, а також безліч математичних, музичних, хімічних та інших символів.

Спробуємо за допомогою таблиці ASCII уявити, як будуть виглядати слова в пам'яті комп'ютера.

слова

пам'ять

01100110

01101001

01101100

01100101

01100100

01101001

01110011

01101011

При введенні текстової інформації в комп'ютер символи (літери, цифри, знаки) кодуються за допомогою різних кодових систем, які складаються з набору кодових таблиць, розміщених на відповідних сторінках стандартів для кодування текстової інформації. У таких таблицях кожному символу присвоюється певний числовий код в шістнадцятковій або десятковій системі числення, т. Е. Кодові таблиці відображають відповідність між зображеннями символів і числовими кодами і призначені для кодування і декодування текстової інформації. При введенні текстової інформації за допомогою клавіатури комп'ютера кожен символ, що вводиться піддається кодування, т. Е. Перетворюється в числовий код, при виведенні текстової інформації на пристрій виведення комп'ютера (дисплей, принтер або плоттер) по числовому коду символу будується його зображення. Присвоєння символу певного числового коду є результатом угоди між відповідними організаціями різних країн. В даний час немає єдиної універсальної кодової таблиці, що задовольняє буквах національних алфавітів різних країн.

Сучасні кодові таблиці включають в себе міжнародну і національну частини, т. Е. Містять букви латинського та національного алфавітів, цифри, знаки арифметичних операцій і пунктуації, математичні і керуючі символи, символи псевдографіки. Міжнародна частина кодової таблиці, що базується на стандарті ASCII (American Standard Code for Information Interchange),кодує першу половину символів кодової таблиці з числовими кодами від 0 до 7 F 16,або в десятковій системі числення від 0 до 127. При цьому коди від 0 до 20 16 (0? 32 10) відведені функціональних клавіш (F1, F2, F3 і т. д.) клавіатури персонального комп'ютера. На рис. 3.1 приведена міжнародна частина кодових таблиць, заснована на стандарті ASCII.Осередки таблиць пронумеровані відповідно до десяткової і шістнадцятковій системі числення.

Рис 3.1. Міжнародна частина кодової таблиці (стандарт ASCII)з номерами осередків, представлених в десяткового (а) і шістнадцятковій (б) системі числення


Національна частина кодових таблиць містить коди національних алфавітів, яку називають також таблицею наборів символів (Charset).

В даний час для підтримки букв російського алфавіту (кирилиці) існує кілька кодових таблиць (кодувань), які використовуються різними операційними системами, що є істотним недоліком і в ряді випадків призводить до проблем, пов'язаних з операціями декодування числових значень символів. У табл. 3.1 наведені назви кодових сторінок (стандартів), на яких розміщені кодові таблиці (кодування) кирилиці.

Таблиця 3.1

Одним з перших стандартів кодування кирилиці на комп'ютерах був стандарт КОІ8-Р. Національна частина кодової таблиці цього стандарту наведена на рис. 3.2.

Мал. 3.2. Національна частина кодової таблиці стандарту КОІ8-Р


В даний час застосовується і кодова таблиця, розміщена на сторінці ср866 стандарту кодування текстової інформації, яка використовується в операційній системі MS DOSабо сеансі роботи MS DOSдля кодування кирилиці (рис. 3.3, а).

Мал. 3.3. Національна частина кодової таблиці, розміщена на сторінці ср866 (а) і на сторінці СР1251 (б) стандарту кодування текстової інформації


В даний час для кодування кирилиці найбільшого поширення набула кодова таблиця, розміщена на сторінці СР1251 відповідного стандарту, яка використовується в операційних системах сімейства Windowsфірми Microsoft(Рис. 3.2, б).У всіх представлених кодових таблицях, крім таблиці стандарту Unicode,для кодування одного символу відводиться 8 двійкових розрядів (8 біт).

В кінці минулого століття з'явився новий міжнародний стандарт Unicode,в якому один символ представляється двобайтовим двійковим кодом. Застосування цього стандарту - продовження розробки універсального міжнародного стандарту, що дозволяє вирішити проблему сумісності національних кодувань символів. За допомогою даного стандарту можна закодувати 2 16 \u003d 65536 різних символів. На рис. 3.4 приведена кодова таблиця 0400 (російський алфавіт) стандарту Unicode.

Мал. 3.4. Кодова таблиця 0400 стандарту Unicode


Пояснимо сказане, що стосується кодування текстової інформації, на прикладі.

приклад 3.1

Закодувати слово «Комп'ютер» у вигляді послідовності десяткових і шістнадцяткових чисел, використовуючи кодування СР1251. Які символи будуть відображені в кодових таблицях ср866 і КОІ8-Р при використанні отриманого коду.

Послідовності шістнадцятирічного і двійкового коду слова «Комп'ютер» на основі кодувальної таблиці СР1251 (див. Рис. 3.3, б)будуть виглядати наступним чином:

Дана кодова послідовність в кодуваннях ср866 і КОІ8-Р призведе до відображення наступних символів:

Для перетворення російськомовних текстових документів з одного стандарту кодування текстової інформації в інший використовуються спеціальні програми - конвертори. Конвертори зазвичай вбудовуються в інші програми. Прикладом може служити програма браузер - Internet Explorer (IE),яка має вбудований конвертор. Програма браузер - це спеціальна програма для перегляду вмісту Web-сторінокв глобальній комп'ютерної мережі Інтернет. Скористаємося цією програмою для підтвердження отриманого в прикладі 3.1 результату відображення символів. Для цього слід виконати такі дії.

1. Запустимо програму Блокнот (NotePad).Програма Блокнот в операційній системі Windows ХРзапускається за допомогою команди: [Кнопка Пуск - Програми - Стандартні - Блокнот]. У вікні програми Блокнот надрукуємо слово «Комп'ютер» з використанням синтаксису мови розмітки гіпертекстових документів - HTML (Hyper Text Markup Language).Ця мова використовується для створення документів в Інтернеті. Текст повинен виглядати наступним чином:

компиотеров

, де

і

теги (спеціальні конструкції) мови HTMLдля розмітки заголовків. На рис. 3.5 представлений результат цих дій.

Мал. 3.5. Відображення тексту в вікні Блокнот


Збережемо цей текст, виконавши команду: [Файл - Зберегти як ...] у відповідній папці комп'ютера, при збереженні тексту файлу дамо ім'я - Прим, з розширенням файлу. html.

2. Запустимо програму Internet Explorer,виконавши команду: [Кнопка Пуск - Програми - Internet Explorer].При запуску програми з'явиться вікно, представлене на рис. 3.6

Мал. 3.6. Вікно доступу в автономний режим


Виберемо і активізуємо кнопку автономнопри цьому не відбудеться підключення комп'ютера до глобальної мережі Інтернет. З'явиться головне вікно програми Microsoft Internet Explorer,представлене на рис. 3.7.

Мал. 3.7. Основне вікно Microsoft Internet Explorer


Виконаємо наступну команду: [Файл - Відкрити], з'явиться вікно (рис. 3.8), в якому необхідно вказати ім'я файлу і натиснути кнопку ОК або натиснути кнопку Огляд ...і знайти файл Прім.html.

Мал. 3.8. Вікно «Відкрити»


Основне вікно програми Internet Explorer набуде вигляду, показаний на рис. 3.9. У вікні відобразиться слово «Комп'ютер». Далі, використовуючи верхнє меню програми Internet Explorer,виконаємо наступну команду: [Вид - Кодування - Кирилиця (DOS)].Після виконання цієї команди у вікні програми Internet Ехplorerвідобразяться символи, зображені на рис. 3.10. При виконанні команди: [Вид - Кодування - Кирилиця (KOI8-R)]у вікні програми Internet Explorerвідобразяться символи, зображені на рис. 3.11.

Мал. 3.9. Символи, які відображаються при кодуванні СР1251


Мал. 3.10. Символи, які відображаються при включенні кодування ср866 для кодової послідовності, представленої в кодуванні СР1251


Мал. 3.11. Символи, які відображаються при включенні кодування КОІ8-Р для кодової послідовності, представленої в кодуванні СР1251


Таким чином, отримані за допомогою програми Internet Explorerпослідовності символів збігаються з послідовностями символів, отриманих за допомогою кодових таблиць ср866 і КОІ8-Р в прикладі 3.1.

3.2. Кодування графічної інформації

Графічна інформація, представлена \u200b\u200bу вигляді малюнків, фотографій, слайдів, рухливих зображень (анімація, відео), схем, креслень, може створюватися і редагуватися за допомогою комп'ютера, при цьому вона відповідним чином кодується. В даний час існує досить велика кількість прикладних програм для обробки графічної інформації, але всі вони реалізують три види комп'ютерної графіки: растрову, векторну і фрактальну.

Якщо пильніше розглянути графічне зображення на екрані монітора комп'ютера, то можна побачити велика кількість різнокольорових точок (пікселів - від англ. pixel,утвореного від picture element -елемент зображення), які, будучи зібрані разом, і утворюють дане графічне зображення. З цього можна зробити висновок: графічне зображення в комп'ютері певним чином кодується і має бути представлено у вигляді графічного файлу. Файл є основною структурною одиницею організації та зберігання даних в комп'ютері і в даному випадку повинен містити інформацію про те, як представити цей набір точок на екрані монітора.

Файли, створені на основі векторної графіки, містять інформацію у вигляді математичних залежностей (математичних функцій, що описують лінійні залежності) і відповідних даних про те, як побудувати зображення об'єкта за допомогою відрізків ліній (векторів) при виведенні його на екран монітора комп'ютера.

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

У процесі кодування зображення проводиться його просторова дискретизація, т. Е. Зображення розбивається на окремі точки і кожній точці задається код кольору (жовтий, червоний, синій і т. Д.). Для кодування кожної точки кольорового графічного зображення застосовується принцип декомпозиції довільного кольору на основні його складові, в якості яких використовують три основні кольори: червоний (англійське слово Red,позначають буквою К),зелений (Green,позначають буквою G),синій (Blue,позначають букой В).Будь-який колір точки, що сприймається людським оком, можна отримати шляхом адитивного (пропорційного) складання (змішування) трьох основних кольорів - червоного, зеленого і синього. Така система кодування називається колірною системою RGB.файли графічних зображень, В яких застосовується колірна система RGB,представляють кожну точку зображення у вигляді колірного триплета - трьох числових величин R, Gі В,відповідних интенсивностям червоного, зеленого і синього кольорів. Процес кодування графічного зображення здійснюється за допомогою різних технічних засобів (Сканера, цифрового фотоапарата, цифрової відеокамери та т. Д.); в результаті виходить растрове зображення. При відтворенні кольорових графічних зображень на екрані кольорового монітора комп'ютера колір кожної точки (пікселя) такого зображення виходить шляхом змішування трьох основних кольорів R, G і B.

якість растрового зображення визначається двома основними параметрами - дозволом (кількістю точок по горизонталі і вертикалі) і використовуваної палітрою кольорів (кількістю поставлених квітів для кожної точки зображення). Дозвіл задається зазначенням числа точок по горизонталі і по вертикалі, наприклад 800 на 600 точок.

Між кількістю квітів, що задаються точці растрового зображення, і кількістю інформації, яке необхідно виділити для зберігання кольору точки, існує залежність, яка визначається співвідношенням (формула Р. Хартлі):

де I - кількість інформації; N -кількість квітів, що задаються точці.

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

Так, якщо кількість квітів, що задаються для точки зображення, N \u003d256, то кількість інформації необхідне для її зберігання (глибина кольору) відповідно до формули (3.1) дорівнюватиме I \u003d 8 біт.

У комп'ютерах для відображення графічної інформації використовуються різні графічні режими роботи монітора. Тут необхідно зазначити, що крім графічного режиму роботи монітора є також текстовий режим, при якому екран монітора умовно розбивається на 25 рядків по 80 символів в рядку. Ці графічні режими характеризуються дозволом екрану монітора і якістю передачі кольору (глибиною кольору). Для установки графічного режиму екрану монітора в операційній системі MS Windows ХРнеобхідно виконати команду: [Кнопка Пуск - Налаштування - Панель управління - Екран]. У діалоговому вікні «Властивості: Екран» (рис. 3.12) необхідно вибрати вкладку «Параметри» і за допомогою повзунка «Дозвіл екрану» вибрати відповідний дозвіл екрана (800 на 600 точок, 1024 на 768 точок і т. Д.). За допомогою списку «Якість передачі кольору» можна вибрати глибину кольору - «Найвища (32 біта)», «Середнє (16 біт)» і т. Д., При цьому кількість квітів, що задаються кожній точці зображення, буде відповідно дорівнює 2 32 (4294967296), 2 16 (65536) і т. д.

Мал. 3.12. Діалогове вікно «Властивості: Екран»


Для реалізації кожного з графічних режимів екрана монітора необхідний певний інформаційний обсяг відеопам'яті комп'ютера. Необхідний інформаційний обсяг відеопам'яті (V)визначається зі співвідношення

де К -кількість точок зображення на екрані монітора (К \u003d А · В); А -кількість точок по горизонталі на екрані монітора; В -кількість точок по вертикалі на екрані монітора; I - кількість інформації (глибина кольору).

Так, якщо екран монітора має роздільну здатність 1024 на 768 точок і палітру, що складається з 65 536 кольорів, то глибина кольору відповідно до формули (3.1) складе I \u003d log 2 65 538 \u003d 16 біт, кількість точок зображення дорівнюватиме: К \u003d1024 х 768 \u003d 786432, і необхідний інформаційний обсяг відеопам'яті відповідно до (3.2) буде дорівнює

V \u003d786432 · 16 біт \u003d 12582912 біт \u003d 1572864 байт \u003d 1536 Кбайт \u003d 1,5 Мбайт.

На закінчення слід зазначити, що крім перечісленнихарактерістік найважливішими характеристиками монітора є геометричні розміри його екрану і точки зображення. Геометричні розміри екрану задаються величиною діагоналі монітора. Величина діагоналі моніторів задається в дюймах (1 дюйм \u003d 1 "\u003d 25,4 мм) і може приймати значення, рівні: 14", 15 ", 17", 21 "т. Д. Сучасні технології виробництва моніторів можуть забезпечити розмір точки зображення рівний 0,22 мм.

Таким чином, для кожного монітора існує фізично максимально можлива роздільна здатність екрану, що визначається величиною його діагоналі і розміром точки зображення.

Вправи для самостійного виконання

1. За допомогою програми MS Excelперетворити кодові таблиці ASCII, ср866, СР1251, КОІ8-Р до таблиць виду: в осередки першого шпальти таблиць записати в алфавітному порядку великі, а потім малі літери латиниці і кирилиці, в осередку другого шпальти - відповідні буквах коди в десятковій системі числення, в осередку третього стовпчика - відповідні буквах коди в шістнадцятковій системі числення. Значення кодів необхідно вибрати з відповідних кодових таблиць.

2. Закодувати і записати у вигляді послідовності чисел в десятковій і шістнадцятковій системі числення наступні слова:

a) Internet Explorer,б) Microsoft Office;в) CorelDRAW.

Кодування зробити за допомогою модернізованої кодувальної таблиці ASCII, отриманої в попередній вправі.

3. Декодувати за допомогою модернізованої кодувальної таблиці КОІ8-Р послідовності чисел записаних в шістнадцятковій системі числення:

а) FC CB DA C9 D3 D4 C5 CE C3 C9 D1;

б) EB CF CE C6 CF D2 CD C9 DA CD;

в) FC CB D3 D0 D2 C5 D3 C9 CF CE C9 DA CD.

4. Який вигляд матиме слово «Кібернетика», записане в кодуванні СР1251, при використанні кодувань ср866 і КОІ8-Р? Перевірити отримані результати за допомогою програми Internet Explorer.

5. Використовуючи кодову таблицю, наведену на рис. 3.1 а,декодувати наступні кодові послідовності, записані в двійковій системі числення:

а) 01010111 01101111 01110010 01100100;

б) 01000101 01111000 01100011 01100101 01101100;

в) 01000001 01100011 01100011 01100101 01110011 01110011.

6. Визначити інформаційний обсяг слова «Економіка», закодованого за допомогою кодових таблиць ср866, СР1251, Unicode і КОІ8-Р.

7. Визначити інформаційний обсяг файлу, отриманого в результаті сканування кольорового зображення розміром 12x12 см. Роздільна здатність сканера, що використовується при скануванні даного зображення, дорівнює 600 dpi. Сканер задає глибину кольору точки зображення рівною 16 біт.

Роздільна здатність сканера 600 dpi (Dotper inch -точок на дюйм) визначає можливість сканера з такою роздільною здатністю на відрізку довжиною 1 дюйм розрізнити 600 точок.

8. Визначити інформаційний обсяг файлу, отриманого в результаті сканування кольорового зображення розміром А4. Роздільна здатність сканера, що використовується при скануванні даного зображення, дорівнює 1200 dpi. Сканер задає глибину кольору точки зображення рівної 24 біт.

9. Визначити кількість квітів у палітрі при глибині кольору 8, 16, 24 і 32 біта.

10. Визначити необхідний обсяг відеопам'яті для графічних режимів екрана монітора 640 на 480, 800 на 600, 1024 на 768 і 1280 на 1024 пікселів при глибині кольору точки зображення 8, 16, 24 і 32 біта. Результати звести в таблицю. розробити в MS Excelпрограму для автоматизації розрахунків.

11. Визначити максимальне число кольорів, яке допустимо використовувати для зберігання зображення розміром 32 на 32 точки, якщо в комп'ютері виділено під зображення 2 Кбайт пам'яті.

12. Визначити максимально можливу роздільну здатність екрана монітора, що має довжину діагоналі 15 "і розмір точки зображення 0,28 мм.

13. Які графічні режими роботи монітора може забезпечити відеопам'ять об'ємом 64 Мбайт?

Сожержаніе

I. Історія кодування інформації .................................... ..3

II. Кодування інформації ................................................ 4

III. Кодування текстової інформації ................................. .4

IV. Види таблиць кодувань ................................................ ... 6

V. Розрахунок кількості текстової інформації ........................... 14

Список використаної літератури ....................................... ..16

I . Історія кодування інформації

Людство використовує шифрування (кодування) тексту з того самого моменту, коли з'явилася перша секретна інформація. Перед вами кілька прийомів кодування тексту, які були винайдені на різних етапах розвитку людської думки:

Криптографія - це тайнопис, система зміни листи з метою зробити текст незрозумілим для непосвячених осіб;

Азбука Морзе або нерівномірний телеграфний код, в якому кожна буква або знак представлені своєю комбінацією коротких елементарних посилок електричного струму (Точок) і елементарних посилок потроєною тривалості (тире);

сурдожести - мова жестів, який використовується людьми з порушеннями слуху.

Один з найперших відомих методів шифрування носить ім'я римського імператора Юлія Цезаря (I століття до н.е.). Цей метод заснований на заміні кожної букви шіфруемоготексту, на іншу, шляхом зміщення в алфавіті від вихідної букви на фіксовану кількість символів, причому алфавіт читається по колу, тобто після букви я розглядається а. Так слово «байт» при зміщенні на два символу вправо кодується словом «гвлф». Зворотний процес розшифровки даного слова - необхідно замінювати кожну зашифровану букву, на другу зліва від неї.

II. кодування інформації

Код - це набір умовних позначень (або сигналів) для запису (або передачі) деяких заздалегідь визначених понять.

Кодування інформації - це процес формування певного уявлення інформації. У більш вузькому сенсі під терміном «кодування» часто розуміють перехід від однієї форми подання інформації до іншої, більш зручною для зберігання, передачі або обробки.

Зазвичай кожен образ при кодуванні (іноді кажуть - кодуванні) поданні окремим знаком.

Знак - це елемент кінцевого безлічі відмінних один від одного елементів.

У більш вузькому сенсі під терміном "кодування" часто розуміють перехід від однієї форми подання інформації до іншої, більш зручною для зберігання, передачі або обробки.

На комп'ютері можна обробляти текстову інформацію. При введенні в комп'ютер кожна буква кодується певним числом, а при виведенні на зовнішні пристрої (екран або друк) для сприйняття людиною по цих числах будуються зображення букв. Відповідність між набором літер і числами називається кодуванням символів.

Як правило, всі числа в комп'ютері представлені за допомогою нулів і одиниць (а не десяти цифр, як це звично для людей). Іншими словами, комп'ютери зазвичай працюють у двійковій системі числення, оскільки при цьому пристрої для їх обробки виходять значно простішими. Введення чисел в комп'ютер і виведення їх для читання людиною може здійснюватися у звичній десятковій формі, а всі необхідні перетворення виконують програми, що працюють на комп'ютері.

III. Кодування текстової інформації

Одна і та ж інформація може бути представлена \u200b\u200b(закодована) в декількох формах. C появою комп'ютерів виникла необхідність кодування всіх видів інформації, з якими має справу і окрема людина, і людство в цілому. Але вирішувати завдання кодування інформації людство почало задовго до появи комп'ютерів. Грандіозні досягнення людства - писемність і арифметика - є не що інше, як система кодування мови і числовий інформації. Інформація ніколи не з'являється в чистому вигляді, вона завжди якось представлена, як-то закодована.

Двійкове кодування - один з найпоширеніших способів подання інформації. В обчислювальних машинах, в роботах і верстатах з числовим програмним управлінням, як правило, вся інформація, з якою має справу пристрій, кодується у вигляді слів двійкового алфавіту.

Починаючи з кінця 60-х років, комп'ютери все більше стали використовуватися для обробки текстової інформації, і в даний час основна частка персональних комп'ютерів в світі (і велика частина часу) зайнята обробкою саме текстової інформації. Всі ці види інформації в комп'ютері представлені в двійковому коді, т. Е. Використовується алфавіт потужністю два (всього два символи 0 і 1). Пов'язано це з тим, що зручно представляти інформацію у вигляді послідовності електричних імпульсів: імпульс відсутній (0), імпульс є (1).

Таке кодування прийнято називати двійковим, а самі логічні послідовності нулів і одиниць - машинною мовою.

З точки зору ЕОМ текст складається з окремих символів. До числа символів належать не тільки букви (заголовні або рядкові, латинські або російські), але і цифри, розділові знаки, спеціальні символи типу "\u003d", "(", "&" і т.п. і навіть (зверніть особливу увагу!) пропуски між словами.

Тексти вводяться в пам'ять комп'ютера за допомогою клавіатури. На клавішах написані звичні нам букви, цифри, знаки пунктуації та інші символи. В оперативну пам'ять вони потрапляють в двійковому коді. Це означає, що кожен символ представляється 8-розрядних двійковим кодом.

Традиційно для кодування одного символу використовується кількість інформації, рівне 1 байту, т. Е. I \u003d 1 байт \u003d 8 біт. За допомогою формули, яка пов'язує між собою кількість можливих подій До і кількість інформації I, можна обчислити скільки різних символів можна закодувати (вважаючи, що символи - це можливі події): К \u003d 2 I \u003d 2 8 \u003d 256, т. Е. Для представлення текстової інформації можна використовувати алфавіт потужністю 256 символів.

Така кількість символів цілком достатньо для представлення текстової інформації, включаючи великі та малі літери російського і латинського алфавіту, цифри, знаки, графічні символи та ін.

Кодування полягає в тому, що кожному символу ставиться у відповідність унікальний десятковий код від 0 до 255 або відповідний йому двійковий код від 00000000 до 11111111. Таким чином, людина розрізняє символи за їх зображенню, а комп'ютер - по їх коду.

Зручність побайтового кодування символів очевидно, оскільки байт - найменша адресується частина пам'яті і, отже, процесор може звернутися до кожного символу окремо, виконуючи обробку тексту. З іншого боку, 256 символів - це цілком достатня кількість для подання найрізноманітнішої символьної інформації.

У процесі виведення символу на екран комп'ютера проводиться зворотний процес - декодування, тобто перетворення коду символу в його зображення. Важливо, що присвоєння символу конкретного коду - це питання угоди, яке фіксується в кодової таблиці.

Тепер виникає питання, який саме восьмизарядний двійкового коду поставити у відповідність кожному символу. Зрозуміло, що це справа умовне, можна придумати безліч способів кодування.

Всі символи комп'ютерного алфавіту пронумеровані від 0 до 255. Кожному номеру відповідає восьмизарядний двійкового коду від 00000000 до 11111111. Цей код просто порядковий номер символу в двійковій системі числення.

IV . Види таблиць кодувань

Таблиця, в якій всім символам комп'ютерного алфавіту поставлені у відповідність порядкові номери, називається таблицею кодування.

для різних типів ЕОМ використовуються різні таблиці кодування.

В якості міжнародного стандарту прийнята кодова таблиця ASCII (American Standard Code for Information Interchange - Американський стандартний код для інформаційного обміну), що кодує першу половину символів з числовими кодами від 0 до 127 (коди від 0 до 32 відведені не символ, а функціональних клавіш).

Таблиця кодів ASCII ділиться на дві частини.

Міжнародним стандартом є лише перша половина таблиці, тобто символи з номерами від 0 (00000000), до 127 (01111111).

Структура таблиці кодування ASCII

Порядковий номер код символ
0 - 31 00000000 - 00011111

Символи з номерами від 0 до 31 прийнято називати керуючими.

Їх функція - управління процесом виведення тексту на екран або друк, подача звукового сигналу, розмітка тексту і т.п.

32 - 127 0100000 - 01111111

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

Символ 32 - пробіл, тобто порожня позиція в тексті.

Всі інші відображаються певними знаками.

128 - 255 10000000 - 11111111

Альтернативна частина таблиці (російська).

Друга половина кодової таблиці ASCII, звана кодовою сторінкою (128 кодів, починаючи з 10000000 і закінчуючи 11111111), може мати різні варіанти, кожен варіант має свій номер.

Кодова сторінка в першу чергу використовується для розміщення національних алфавітів, відмінних від латинського. У російських національних кодуваннях в цій частині таблиці розміщуються символи російського алфавіту.

Перша половина таблиці кодів ASCII

Звертається увага на те, що в таблиці кодування букви (великі та малі) розташовуються в алфавітному порядку, а цифри впорядковані за зростанням значень. Таке дотримання лексикографічного порядку в розташуванні символів називається принципом послідовного кодування алфавіту.

Для букв російського алфавіту також дотримується принцип послідовного кодування.

Друга половина таблиці кодів ASCII

На жаль, в даний час існують п'ять різних кодувань кирилиці (КОІ8-Р, Windows. MS-DOS, Macintosh і ISO). Через це часто виникають проблеми з перенесенням російського тексту з одного комп'ютера на інший, з однієї програмної системи в іншу.

Хронологічно одним з перших стандартів кодування російських букв на комп'ютерах був КОІ8 ( "Код обміну інформацією, 8-бітний"). Це кодування застосовувалася ще в 70-ті роки на комп'ютерах серії ЄС ЕОМ, а з середини 80-х стала використовуватися в перших русифікованих версіях операційної системи UNIX.

Від початку 90-х років, часу панування операційної системи MS DOS, залишається кодування CP866 ( "CP" означає "Code Page", "кодова сторінка").

Комп'ютери фірми Apple, що працюють під управлінням операційної системи Mac OS, використовують свою власну систему кодування Mac.

Крім того, Міжнародна організація по стандартизації (International Standards Organization, ISO) затвердила в якості стандарту для російської мови ще одне кодування під назвою ISO 8859-5.

Найбільш поширеною в даний час є кодування Microsoft Windows, що позначається скороченням CP1251. Введена компанією Microsoft; з урахуванням широкого поширення операційних систем (ОС) та інших програмних продуктів цієї компанії в Російській Федерації вона знайшла широке поширення.

З кінця 90-х років проблема стандартизації символьного кодування вирішується введенням нового міжнародного стандарту, який називається Unicode.

Це 16-розрядна кодування, тобто в ній на кожен символ відводиться 2 байти пам'яті. Звичайно, при цьому обсяг займаної пам'яті збільшується в 2 рази. Але зате така кодова таблиця допускає включення до 65536 символів. Повна специфікація стандарту Unicode включає в себе всі існуючі, вимерлі і штучно створені алфавіти світу, а також безліч математичних, музичних, хімічних та інших символів.

Внутрішнє представлення слів в пам'яті комп'ютера

за допомогою таблиці ASCII

Іноді буває так, що текст, що складається з букв російського алфавіту, отриманий з іншого комп'ютера, неможливо прочитати - на екрані монітора видно якась "абракадабра". Це відбувається тому, що на комп'ютерах застосовується різна кодування символів російської мови.

Таким чином, кожне кодування задається своєї власної кодової таблицею. Як видно з таблиці, одному і тому ж бінарного коду в різних кодуваннях поставлені у відповідність різні символи.

Наприклад, послідовність числових кодів 221, 194, 204 в кодуванні СР1251 утворює слово «ЕОМ», тоді як в інших кодуваннях це буде безглуздий набір символів.

На щастя, в більшості випадків користувач не повинен піклуватися про перекодування текстових документів, так як це роблять спеціальні програми-конвертори, вбудовані в додатки.

V . Розрахунок кількості текстової інформації

Завдання 1: Закодуйте слово "Рим" за допомогою таблиць кодувань КОІ8-Р і CP1251.

Рішення:

Завдання 2: Вважаючи, що кожен символ кодується одним байтом, оцініть інформаційний обсяг наступного речення:

"Мій дядько самих чесних правил,

Коли не в жарт занедужав,

Він поважати себе примусив

І краще вигадати не міг. "

Рішення: У цій фразі 108 символів, враховуючи знаки пунктуації, лапки і прогалини. Множимо цю кількість на 8 біт. Отримуємо 108 * 8 \u003d 864 біта.

Завдання 3: Два тексту містять однакову кількість символів. Перший текст записаний російською мовою, а другий на мові племені нагурі, алфавіт якого складається з 16 символів. Чий текст несе більшу кількість інформації?

Рішення:

1) I \u003d К * а (інформаційний обсяг тексту дорівнює добутку числа символів на інформаційний вага одного символу).

2) Оскільки обидва тексти мають однакову кількість символів (К), то різниця залежить від інформативності одного символу алфавіту (а).

3) 2 а1 \u003d 32, тобто а 1 \u003d 5 біт, 2 а 2 \u003d 16, тобто а 2 \u003d 4 біт.

4) I 1 \u003d К * 5 біт, I 2 \u003d К * 4 біт.

5) Значить, текст, записаний російською мовою в 5/4 рази несе більше інформації.

Завдання 4: Обсяг повідомлення, що містить 2048 символів, склав 1/512 частина Мбайта. Визначити потужність алфавіту.

Рішення:

1) I \u003d 1/512 * 1024 * 1024 * 8 \u003d 16384 біт - перевели в біти інформаційний обсяг повідомлення.

2) а \u003d I / К \u003d 16384/1024 \u003d 16 біт - доводиться на один символ алфавіту.

3) 2 * 16 * 2048 \u003d 65536 символів - потужність використаного алфавіту.

Завдання 5: Лазерний принтер Canon LBP друкує зі швидкістю в середньому 6,3 Кбіт в секунду. Скільки часу знадобиться для роздруківки 8-ми сторінкового документа, якщо відомо, що на одній сторінці в середньому по 45 рядків, в рядку 70 символів (1 символ - 1 байт)?

Рішення:

1) Знаходимо кількість інформації, що міститься на 1 сторінці: 45 * 70 * 8 біт \u003d 25200 біт

2) Знаходимо кількість інформації на 8 сторінках: 25200 * 8 \u003d 201600 біт

3) Наводимо до єдиних одиницях виміру. Для цього Мбіт переводимо в біти: 6,3 * 1024 \u003d 6451,2 біт / сек.

4) Знаходимо час друку: 201600: 6451,2 \u003d 31 секунда.

Список використаної літератури

1. Агєєв В.М. Теорія інформації та кодування: дискретизація і кодування вимірювальної інформації. - М .: МАІ, 1977.

2. Кузьмін І.В., Кедрус В.А. Основи теорії інформації та кодування. - Київ, Вища школа, 1986.

3. Найпростіші методи шифрування тексту / Д.М. Златопольский. - М .: Чисті ставки, 2007 - 32 с.

4. Угриновича Н.Д. Інформатика та інформаційні технології. Підручник для 10-11 класів / Н.Д.Угріновіч. - М .: БИНОМ. Лабораторія знань, 2003. - 512 с.

5. http://school497.spb.edu.ru/uchint002/les10/les.html#n

Матеріал для самостійного вивчення по темі Лекції 2

Кодування ASCII

Кодировочная таблиця ASCII (ASCII - American Standard Code for Information Interchange - Американський стандартний код для обміну інформацією).

Всього за допомогою таблиці кодування ASCII (рисунок 1) можна закодувати 256 різних символів. Ця таблиця розділена на дві частини: основну (з кодами від OOh до 7Fh) і додаткову (від 80h до FFh, де буква h позначає приналежність коду до шестнадцатеричной системі числення).

Малюнок 1

Для кодування одного символу з таблиці відводиться 8 біт (1 байт). При обробці текстової інформації один байт може містити код деякого символу - літери, цифри, знака пунктуації, знака дії і т.д. Кожному символу відповідає свій код у вигляді цілого числа. При цьому всі коди збираються в спеціальні таблиці, звані кодіровочние. З їх допомогою виробляється перетворення коду символу в його видиме уявлення на екрані монітора. В результаті будь-який текст в пам'яті комп'ютера представляється як послідовність байтів з кодами символів.

Наприклад, слово hello! буде закодовано наступним чином (таблиця 1).

Таблиця 1

код двійковий

код десятковий

На малюнку 1 представлені символи, що входять в стандартну (англійську) і розширену (російську) кодування ASCII.

Перша половина таблиці ASCII стандартизована. Вона містить керуючі коди (від 00h до 20h і 77h). Ці коди з таблиці вилучені, так як вони не відносяться до текстових елементів. Тут же розміщуються знаки пунктуації та математичні знаки: 2lh -!, 26h - &, 28h - (, 2Bh - +, ..., великі і малі латинські букви: 41h - A, 61h - а.

Друга половина таблиці містить національні шрифти, символи псевдографіки, з яких можуть бути побудовані таблиці, спеціальні математичні знаки. Нижню частину таблиці кодувань можна замінювати, використовуючи відповідні драйвери - керуючі допоміжні програми. Цей прийом дозволяє застосовувати кілька шрифтів і їх гарнітур.

Дисплей по кожному коду символу повинен вивести на екран зображення символу - не просто цифровий код, а відповідну йому картинку, так як кожен символ має свою форму. Опис форми кожного символу зберігається в спеціальній пам'яті дисплея - знакогенератор. Висвітлення символу на екрані дисплея IBМ PC, наприклад, здійснюється за допомогою точок, що утворюють символьне матрицю. Кожен піксель в такій матриці є елементом зображення і може бути яскравим або темним. Темна точка кодується цифрою 0, світла (яскрава) - 1. Якщо зображати в матричному полі знака темні пікселі точкою, а світлі - зірочкою, то можна графічно зобразити форму символу.

Люди в різних країнах використовують символи для запису слів їхніх рідних Зиков. У наші дні більшість додатків, включаючи системи електронної пошти і веб-браузери, є чисто 8-бітними, тобто вони можуть показувати і коректно сприймати лише 8-бітові символи, відповідно до стандарту ISO-8859-1.

Існує більше 256 символів в світі (якщо врахувати кирилицю, арабську, китайську, японську, корейську та тайський мови), а також з'являються все нові і нові символи. І це створює такі прогалини для багатьох користувачів:

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

З'являються нові символи (наприклад: Євро), внаслідок чого ISO розробляє новий стандарт ISO-8859-15, який дуже схожий зі стандартом ISO-8859-1. Різниця полягає в наступному: з таблиці кодування старого стандарту ISO-8859-1 були прибрані символи позначення старих валют, які не використовуються в даний час, для того, щоб звільнити місце під знову з'явилися символи (такі, як Євро). В результаті у користувачів на дисках можуть лежати одні і ті ж документи, але в різних кодуваннях. Рішенням цих проблем є прийняття єдиного міжнародного набору кодувань, який називається універсальним кодуванням або Unicode.

Кодування Unicode

Стандарт запропонований в 1991 році некомерційною організацією «Консорціум Юнікоду» (англ. Unicode Consortium, Unicode Inc.). Застосування цього стандарту дозволяє закодувати дуже велике число символів з різних писемностей: у документах Unicode можуть сусідити китайські ієрогліфи, математичні символи, букви грецького алфавіту, латиниці і кирилиці, при цьому стає непотрібним переключення кодових сторінок.

Стандарт складається з двох основних розділів: універсальний набір символів (англ. UCS, universal character set) і сімейство кодувань (англ. UTF, Unicode transformation format). Універсальний набір символів задає однозначну відповідність символів кодам - \u200b\u200bелементам кодового простору, що представляє невід'ємні цілі числа. Сімейство кодувань визначає машинне представлення послідовності кодів UCS.

Стандарт Unicode був розроблений з метою створення єдиної кодування символів всіх сучасних і багатьох давніх писемних мов. Кожен символ в цьому стандарті кодується 16 бітами, що дозволяє йому охопити незрівнянно більшу кількість символів, ніж прийняті раніше 8-бітові кодування. Ще однією важливою відмінністю Unicode від інших систем кодування є те, що він не тільки приписує кожному символу унікальний код, А й визначає різні характеристики цього символу, наприклад:

    тип символу (прописна буква, мала літера, цифра, розділовий знак і т.д.);

    атрибути символу (відображення зліва направо або справа наліво, пробіл, розрив рядка і т.д.);

    відповідна прописна або рядкова буква (для малих і великих літер відповідно);

    відповідне числове значення (для цифрових символів).

Весь діапазон кодів від 0 до FFFF розбитий на кілька стандартних підмножин, кожне з яких відповідає або алфавітом якоїсь мови, або групі спеціальних символів, подібних за своїми функціями. На наведеній нижче схемі міститься загальний перелік підмножин Unicode 3.0 (малюнок 2).

малюнок 2

Стандарт Unicode є основою для зберігання і тексту в багатьох сучасних комп'ютерних системах. Однак, він не сумісний з більшістю Інтернет-протоколів, оскільки його коди можуть містити будь-які байтові значення, а протоколи зазвичай використовують байти 00 - 1F і FE - FF в якості службових. Для досягнення сумісності були розроблені кілька форматів перетворення Unicode (UTFs, Unicode Transformation Formats), з яких на сьогодні найбільш поширеним є UTF-8. Цей формат визначає наступні правила перетворення кожного коду Unicode в набір байтів (від одного до трьох), придатних для транспортування Інтернет-протоколами.

Тут x, y, z позначають біти вихідного коду, які повинні вилучатися, починаючи з молодшого, і заноситися в байти результату справа наліво, поки не будуть заповнені всі зазначені позиції.

Подальший розвиток стандарту Unicode пов'язано з додаванням нових мовних площин, тобто символів в діапазонах 10000 - 1FFFF, 20000 - 2FFFF і т.д., куди передбачається включати кодування для письменностей мертвих мов, що не потрапили в таблицю, наведену вище. Для кодування цих додаткових символів був розроблений новий формат UTF-16.

Таким чином, існує 4 основних способи кодування байтами в форматі Unicode:

UTF-8: 128 символів кодуються одним байтом (формат ASCII), 1920 символів кодуються 2-мя байтами ((Roman, Greek, Cyrillic, Coptic, Armenian, Hebrew, Arabic символи), 63488 символів кодуються 3-ма байтами (Китайська, японська та ін.) Решту 2 147 418 112 символи (ще не використані) можуть бути закодовані 4, 5 або 6-ю байтами.

UCS-2: Кожен символ представлений 2-ма байтами. Дана кодування включає лише перші 65 535 символів з формату Unicode.

UTF-16: Чи є розширенням UCS-2, налічує 1 114 112 символів формату Unicode. Перші 65 535 символів представлені 2-ма байтами, інші - 4-ма байтами.

USC-4: Кожен символ кодується 4-ма байтами.