вторник, 24 февраля 2015 г.

Сегодня я хочу вам рассказать о таблицах кодировок. Таблица кодировки- это таблица, в которой всем символам компьютерного алфавита поставлены в соответствие порядковые номера.
На заре компьютерной эры на каждый символ было отведено по пять бит. Это было связано с малым количеством оперативной памяти на компьютерах тех лет. В эти 64 символа входили только управляющие символы и строчные буквы английского алфавита.
С ростом производительности компьютеров стали появляться таблицы кодировок с большим количеством символов. Первой семибитной кодировкой стала ASCII7*. В нее уже вошли прописные буквы английского алфавита, арабские цифры, знаки препинания. Затем на ее базе была разработана ASCII8*, в которым уже стало возможным хранение 256символов: 128 основных и еще столько же расширенных.
Первая часть таблицы осталась без изменений, а вторая может иметь различные варианты (каждый имеет свой номер). Эта часть таблицы стала заполняться символами национальных алфавитов.
*ASCII — таблицы кодировок, в которых содержатся основные символы (английский алфавит, цифры, знаки препинания, символы национальных алфавитов(свои для каждого региона), служебные символы) и длина кода каждого символа n = 8 бит.
Но для многих языков (например, арабского, японского, китайского) 256 символов недостаточно, поэтому развитие кодировок продолжалось, что привело к появлению UNICODE. Юникод или Уникод (англ. Unicode) — это промышленный стандарт обеспечивающий цифровое представление символов всех письменностей мира, и специальных символов.
Стандарт предложен в 1991 году некоммерческой организацией «Консорциум Юникода» (англ. Unicode Consortium, Unicode Inc.). Применение этого стандарта позволяет закодировать очень большое число символов из разных письменностей. Стандарт состоит из двух основных разделов: универсальный набор символов (англ. UCS, universal character set) и семейство кодировок (англ. UTF, Unicode transformation format). Универсальный набор символов задаёт однозначное соответствие символов кодам — элементам кодового пространства, представляющим неотрицательные целые числа.Семейство кодировок определяет машинное представление последовательности кодов UCS.
Коды в стандарте Unicode разделены на несколько областей. Область с кодами от U+0000 до U+007F содержит символы набора ASCII с соответствующими кодами. Далее расположены области знаков различных письменностей, знаки пунктуации и технические символы. Под символы кириллицы выделены области знаков с кодами от U+0400 до U+052F, от U+2DE0 до U+2DFF, от U+A640 до U+A69F. Часть кодов зарезервирована для использования в будущем.
Фрагмент таблицы UNICODE, Кириллица


Кодировка KaZ
   
    Восьмибитовая кодировка, породившая 16-битовые псевдо-Unicode шрифты с суффиксом KaZ после названия. Замененные знаки отличающие эту кодировку от CP1251 помечены синим цветом. Неверные "юникоды", оставленные от замененных символов помечены красным цветом. Более того, оказалось, что псевдо-Unicode шрифты содержат еще один набор кириллицы (две 16-битовые кодировки в одном флаконе), теперь уже на месте куда транслируется таблица CP1252 (см. таблицу ниже), с "неродными юникодами" теперь и у основной кириллицы.

                                                       UTF-8

UTF-8 — представление Юникода, обеспечивающее наилучшую совместимость со старыми системами, использовавшими 8-битные символы. Текст, состоящий только из символов с номером меньше 128, при записи в UTF-8 превращается в обычный текст ASCII. И наоборот, в тексте UTF-8 любой байт со значением меньше 128 изображает символ ASCII с тем же кодом. Остальные символы Юникода изображаются последовательностями длиной от двух до шести байт (на деле, только до четырех байт, поскольку в Юникоде нет символов с кодом больше 10FFFF_{16}, и вводить их в будущем не планируется), в которых первый байт всегда имеет вид 11xxxxxx, а остальные — 10xxxxxx.
Символы UTF-8 получаются из Unicode cледующим образом:
UnicodeUTF-8Представленные символы
0x00000000 —0x0000007F0xxxxxxxASCII, в том числе английский алфавит, простейшие знаки препинания и арабские цифры
0x00000080 —0x000007FF110xxxxx 10xxxxxxкириллица, расширенная латиница, арабский алфавит, армянский алфавит, греческий алфавит, еврейский алфавит и коптский алфавит; сирийское письмо, тана, нко; Международный фонетический алфавит; некоторые знаки препинания
0x00000800 —0x0000FFFF1110xxxx 10xxxxxx 10xxxxxxвсе другие современные формы письменности, в том числе грузинский алфавит, индийское, китайское, корейское и японское письмо; сложные знаки препинания; математические и другие специальные символы
0x00010000 —0x001FFFFF11110xxx 10xxxxxx 10xxxxxx 10xxxxxxмузыкальные символы, редкие китайские иероглифы, вымершие формы письменности
111111xxслужебные символы c, d, e, f
Несмотря на то, что UTF-8 позволяет указать один и тот же символ несколькими способами, только наиболее короткий из них правильный. Остальные формы, называемые overlong sequence, отвергаются по соображениям безопасности.
Это всё, что я хотела вам сегодня рассказать. Источники: http://neerc.ifmo.ru/wikihttp://www.sci.kz.
До встречи!

Комментариев нет:

Отправить комментарий