WinXP SP2, ActivePython 2.5.
Как правильно работать с кириллицей функциями строк upper, lower, capitalize, swapcase, title?
“Вася”.upper() для кириллицы не работает.
>>> print unicode('Вася', 'utf-8').upper().encode('utf-8') ВАСЯ
Все ники занятыЯ знаю, но все же лучше перед выводом их преобразовывать в str с нужной кодировкой.
Работает и без последнего encode, кстати.
StriverДо тех пор пока вы в консольной проге не перенаправите вывод в файл:
slivlen: “все же лучше перед выводом их преобразовывать в str с нужной кодировкой”…
Если вывод может быть и в консоль и в окошки, предпочитаю оставлять строки в виде unicode, python сам прекрасно решает, в какой кодировке вывести строку.
python rus.py > file
slav0nicхотя решение у этой проблемы достаточно простое: вместо обычного print нужно делать вывод в файловый поток, оборачивающий stdout или stderr, но который имеет установленную правильную кодировку, типа как мы это делаем в bzr:
кстати из-за этого часто не работает ulipad и другие редакторы, с возможностью запуска скриптов и вывода stdout в своём окне…