Представление символов, таблицы кодировок — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
Строка 46: Строка 46:
 
|-
 
|-
 
|<code>0x00010000</code> — <code>0x001FFFFF</code>||<code>11110xxx 10xxxxxx 10xxxxxx 10xxxxxx</code>||музыкальные символы, редкие китайские иероглифы, вымершие формы письменности
 
|<code>0x00010000</code> — <code>0x001FFFFF</code>||<code>11110xxx 10xxxxxx 10xxxxxx 10xxxxxx</code>||музыкальные символы, редкие китайские иероглифы, вымершие формы письменности
|} [http://ru.wikipedia.org/wiki/%D0%AE%D0%BD%D0%B8%D0%BA%D0%BE%D0%B4]
+
|} [http://ru.wikipedia.org/wiki/UTF-8]

Версия 23:49, 19 октября 2010

Представление символов в вычислительных машинах

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

Количество символов, которые можно задать последовательностью битов длины n, задается простой формулой [math]C(n) = 2^n[/math]. Таким образом, от нужного количества символов напрямую зависит количество используемой памяти.

Таблицы кодировок

На заре компьютерной эры на каждый символ было отведено по 5 бит. Это было связано с малым количеством оперативной памяти на компьютерах тех лет. В эти 64 символа входили только управляющие символы и строчные буквы английского алфавита.

С ростом производительности компьютеров стали появляться таблицы кодировок с большим количеством символов. Первой 7 битной кодировкой стала ASCII7. В нее уже вошли прописные буквы английского алфавита, арабские цифры, знаки препинания. Затем на ее базе была разработана ASCII8, в которым уже стало возможным хранение 256 символов: 128 основных и еще столько же расширенных. Первая часть таблицы осталась без изменений, а вторая может иметь различные варианты (каждый имеет свой номер). Эта часть таблицы стала заполняться символами национальных алфавитов.


Определение:
ASCII - таблицы кодировок, в которых содержатся основные символы (английский алфавит, цифры, знаки препинания, символы национальных алфавитов(свои для каждого региона), служебные символы) и длина кода каждого символа [math]n = 8[/math] бит.


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


Определение:
UNICODE - таблицы кодировок, в которых содержатся все используемые символы и длина кода каждого символа [math]n \geq 8[/math] бит.


Наиболее известные кодировки

7 бит:

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

Кодировки стандарта ASCII (8 бит):

  • ASCII - первая кодировка, в которой стало возможно использовать символы национальных алфавитов.
  • КОИ8-R - первая русская кодировка. Символы кириллицы расположены не в алфавитном порядке. Их разместили в верхнюю половину таблицы так, чтобы позиции кириллических символов соответствовали их фонетическим аналогам в английском алфавите. Это значит, что даже при потере старшего бита каждого символа, текст остается "читаемым".
  • CP866 - русская кодировка, использовавшаяся на компьютерах IBM в системе DOS.
  • Windows-1251 - русская кодировка, использовавшаяся в русскоязычных версиях операционной системы Windows в начале 90-х годов. Кириллические символы идут в алфавитном порядке. Содержит все символы, встречающиеся в типографике обычного текста (кроме знака ударения).[1]

Кодировки стандарта UNICODE:

  • UTF8 - самая распространенная на данный момент кодировка из семейства UNICODE.
Unicode UTF-8 Представленные символы
0x00000000 — 0x0000007F 0xxxxxxx ASCII, в том числе английский алфавит, простейшие знаки препинания и арабские цифры
0x00000080 — 0x000007FF 110xxxxx 10xxxxxx кириллица, расширенная латиница, арабский алфавит, армянский алфавит, греческий алфавит, еврейский алфавит и коптский алфавит; сирийское письмо, тана, нко; Международный фонетический алфавит; некоторые знаки препинания
0x00000800 — 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx все другие современные формы письменности, в том числе грузинский алфавит, индийское, китайское, корейское и японское письмо; сложные знаки препинания; математические и другие специальные символы
0x00010000 — 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx музыкальные символы, редкие китайские иероглифы, вымершие формы письменности
[2]