Учебная страница курса биоинформатики,
год поступления 2015
О кодировках
- Файл на диске и в оперативной памяти хранится в виде последовательностей нулей и единиц.
- Восемь двоичных цифр называют байтом. Всего 256 разных байтов. Их обозначают 0, 1, 2, ..., 255:
- 0 = 00000000
- 1 = 00000001
- 2 = 00000010
- 3 = 00000011
- ............
- 255 = 11111111
- Или так:
- 00 = 00000000
- 01 = 00000001
- 02 = 00000010
- 03 = 00000011
- ............
- 08 = 00001000
- 09 = 00001001
- 0A = 00001010
- 0B = 00001011
- .............
- 0F = 00001111
- 10 = 00010000
- .............
- F0 = 11110000
- .............
- FF = 11111111
- Такая запись называется двузначным 16-ричным числом
В текстовом файле каждому байту соответствует значок, отображаемый программой – редактором текста на экране – буква маленькая или большая, цифра, знак препинания или еще какой-нибудь символ.
- При вводе текста с помощью редактора каждой клавише на клавиатуре и многим сочетаниям клавиш соответсвкет свой байт (например, Shift + A для большой буквы A)
Посмотреть на сами байты в файле, а не на значки, в FAR можно Viewer'ом (F3 → F4); байты показываются в 16-ричном виде
Таблица соответствия байт <=> значок называется кодировкой. Первых 128 байтов (с нулём в певрой позиции) хватает, чтобы закодировать знаки, используемые в английском языке, ставшие международным стандартом. Всех 256 байтов хватает для совместного использования русского и английского языков.
Существует несколько кодировок кириллицы: cp1251 – стандартная для Windows, cp866 – старая, KOI8-R – стандартная для Linux и др.
- Во всех этих кодировках первые 128 байтов соответствуют одним и тем же значкам, а именно, английским буквам и ряду стандартных знаков (цифрам, знакам препинания и др.) Кириллические буквы не входят в число первых 128 байтов.
Придумана универсальная система знаков Юникод. В ней представлены более 1 млн знаков, используемых человечеством. Для кодирования этого огромного кодового пространства одного байта недостаточно. Есть универсальные кодировки, которые используют переменное число байтов на один знак. Одна из таких кодировок – UTF-8. Недостаток – она сложная, преимущество – в ней можно закодировать текст на любом языке.
Если набрать русский текст с помощью клавиатуры, вводящей символы в одной кодировке, а посмотреть на него с помощью редактора, использующего другую кодировку, увидите абракадабру. Наверное, вы видали такое на некоторых веб-страницах или еще где-нибудь
- Бороться можно двумя способами:
- можно указать редактору, какую кодировку использовать;
можно изменить сам текстовый файл – перевести его из одной кодировки в другую. При этом байты изменятся, т.к. в разных кодировках один и тот же знак кодируется разными байтами.
- FAR позволяет переключить кодировку для отображения текста, не изменяя сам файл (F8 или Shift+F8).
FAR позволяет изменить кодировку в файле (Ctrl+A – выделить весь текст, Ctrl+X – убрать в карман, F8 или Shift+F8 для переключения кодировки, Ctrl+V – вставка текста, после этого при сохранении файла он меняется – происходит перекодирование в самом файле).