Кодировка и локализация
- Кодировка как соответствие чисел начертанию символов
- ASCII
- Восьмибитные кодировки, кодовая страница
- Русские восьмибитные кодировки koi8-r, cp1251, cp866
Проект Unicode, кодировки UCS8 и UCS16
- UTF8
Python и кодировки: unicode-строки, методы encode() и decode(). Локаль UTF8 как восьмибитная локаль в Python
Локаль. Использование locale и перегрузка переменных LC_что-то-там для временной смены локали или ее компонентов
Использование hexdump -C для просмотра побайтного шестнадцатеричного представления
Домашнее задание
А ГДЕ прочитать разумное про кодировки?
Вывести на стандартный вывод файл, изначально заданный в кодировке CP866
Это можно сделать прямо из командной строки так: python -c 'print file("treplo-cp866.txt").read().decode("cp866").encode("utf8")'
- Ввести слово (например, "Вопрос"), перевести его сначала из текущей кодировки в юникод, затем в кодировку "CP1251", затем обратно в юникод, считая, что кодировка была "KOI8-R", вывести результат (для Linux и для Windows, возможно, текущая кодировка будет разной)
Это тоже можно сделать из командной строки, хотя в файле все выглядело бы покрасивее: python -c 'E="utf8"; print raw_input().decode(E).encode("cp1251").decode("koi8-r").encode(E);'
- Решить простую олимпиадную задачу (Олимпиада школьников ?Ломоносов?, отборочный этап, информатика, 2011-2012 учебный год):
Рассмотрим текст романа Л. Н. Толстого ?Анна Каренина? (следует использовать электронную версию романа, находящуюся по адресу http://ejudge.ru/study/anna.txt; есть на этом вики). Словоформой назовем последовательность латинских или русских букв. Словоформы ограничиваются символами, не являющимися латинскими или русскими буквами. В словоформах не различаются заглавные и строчные буквы и буквы е и е. Например, Осел и осел ? это одна словоформа. Выпишите 10 наиболее часто встречающихся словоформ длиной 4 буквы в порядке уменьшения частоты их появления и для каждой словоформы укажите частоту ее появления. Словоформы должны быть выписаны строчными буквами, с буквой е, преобразованной к букве е. Если несколько словоформ имеют равную частоту появления, они должны быть упорядочены по алфавиту (причем русские буквы идут раньше латинских). Обоснуйте свой ответ и приложите исходные тексты (например, тексты программ или электронные таблицы), использованные для получения ответа.
- (упрощенный вариант) Без учета требования сортировки русских и английских словоформ, имеющих одинаковую частоту появления
Проверочный файл с английским словом в ответе: annaE.txt
Решение с ручным разбором слов и построчным чтением из файла: anna_noRE.py
Решение с обработкой регулярным выражением: anna.py
Условные обозначения
? тема по Linux
?? необязательная тема
? теоретическое задание
? тема для самостоятельного изучения