Кодовые страницы
На конец 20-го века существовало пять различных кодировок кириллицы (КОИ8-Р, Windows-1251, 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.
В конце 20-го века наиболее распространенной была кодировка Microsoft Windows обозначаемая сокращением CP1251. Введена компанией Microsoft; с учетом широкого распространения операционных систем (ОС) и других программных продуктов этой компании в Российской Федерации она нашла широкое распространение.
С конца 90-х годов проблема стандартизации символьного кодирования решается введением нового международного стандарта который называется Unicode.
Это 16-разрядная кодировка т.е. в ней на каждый символ отводится 2 байта памяти. Конечно при этом объем занимаемой памяти увеличивается в 2 раза. Но зато такая кодовая таблица допускает включение до 65536 символов. Полная спецификация стандарта Unicode включает в себя все существующие вымершие и искусственно созданные алфавиты мира а также множество математических музыкальных химических и прочих символов.
Внутреннее представление слов в памяти компьютера с помощью таблицы ASCII
Слова |
Память |
file |
01100110 01101001 01101100 01100101 |
disk |
01100100 01101001 01110011 01101011 |
Иногда бывает так что текст состоящий из букв русского алфавита полученный с другого компьютера невозможно прочитать - на экране монитора видна какая-то "абракадабра". Это происходит оттого что на компьютерах применяется разная кодировка символов русского языка.
Таким образом каждая кодировка задается своей собственной кодовой таблицей. Как видно из таблицы одному и тому же двоичному коду в различных кодировках поставлены в соответ-ствие различные символы.
Сравнительная таблица части кодов разных кодировок русского языка
Кодовая старница |
Код символа |
cим вол | ... |
65 / 97 193 / 225 |
66 / 98 194 / 226 |
67 / 99 195 / 227 |
68 / 100 196 / 228 |
69 / 101 197 / 229 |
70 / 102 198 / 230 |
71 / 103 199 / 231 |
72 / 104 200 / 232 | ... | ||||||||||
ASCII | 0000 0000 | :) | ... | 65 | 0100 0001 | A | 0100 0010 | B | 0100 0011 | C | 0100 0100 | D | 0100 0101 | E | 0100 0110 | F | 0100 0111 | G | 0100 1000 | H | ... | |
koi8-r | 1000 0000 | - | ... | 193 | 1100 0001 | а | 1100 0010 | б | 1100 0011 | ц | 1100 0100 | д | 1100 0101 | е | 1100 0110 | ф | 1100 0111 | г | 1100 1000 | х | ... | |
ASCII | 0000 0000 | ... | 97 | 0110 0001 | a | 0110 0010 | b | 0110 0011 | c | 0110 0100 | d | 0110 0101 | e | 0110 0110 | f | 0110 0111 | g | 0110 1000 | h | ... | ||
koi8-r | 1000 0000 | ... | 225 | 1110 0001 | А | 1110 0010 | Б | 1110 0011 | Ц | 1110 0100 | Д | 1110 0101 | Е | 1110 0110 | Ф | 1110 0111 | Г | 1110 1000 | Х | ... | ||
CP866 | 1000 0000 | А | Б | ... | 225 | 1110 0001 | с | 1110 0010 | т | 1110 0011 | у | 1110 0100 | ф | 1110 0101 | х | 1110 0110 | ц | 1110 0111 | ч | 1110 1000 | ш | ... |
ISO 8859-5 | 1000 0000 | [] | ... | 225 | 1110 0001 | с | 1110 0010 | т | 1110 0011 | у | 1110 0100 | ф | 1110 0101 | х | 1110 0110 | ц | 1110 0111 | ч | 1110 1000 | ш | ... | |
MAC | 1000 0000 | А | Б | ... | 225 | 1110 0001 | б | 1110 0010 | в | 1110 0011 | г | 1110 0100 | д | 1110 0101 | е | 1110 0110 | ж | 1110 0111 | з | 1110 1000 | и | ... |
CP1251 | 1000 0000 | Á | à | ... | 225 | 1110 0001 | б | 1110 0010 | в | 1110 0011 | г | 1110 0100 | д | 1110 0101 | е | 1110 0110 | ж | 1110 0111 | з | 1110 1000 | и | ... |