Найти - Пользователи
Полная версия: Работа с кириллицей, методы строк
Начало » Python для экспертов » Работа с кириллицей, методы строк
1
Все ники заняты
WinXP SP2, ActivePython 2.5.
Как правильно работать с кириллицей функциями строк upper, lower, capitalize, swapcase, title?
“Вася”.upper() для кириллицы не работает.
slivlen
Через юникод:
>>> print unicode('Вася', 'utf-8').upper().encode('utf-8')
ВАСЯ
P.S. Кодировку, разумеется, надо заменить на нужную тебе.
Все ники заняты
Спасибо, получилось. Работает и без последнего encode, кстати.
slivlen
Все ники заняты
Работает и без последнего encode, кстати.
Я знаю, но все же лучше перед выводом их преобразовывать в str с нужной кодировкой.
Striver
slivlen: “все же лучше перед выводом их преобразовывать в str с нужной кодировкой”…
Если вывод может быть и в консоль и в окошки, предпочитаю оставлять строки в виде unicode, python сам прекрасно решает, в какой кодировке вывести строку.
bialix
Striver
slivlen: “все же лучше перед выводом их преобразовывать в str с нужной кодировкой”…
Если вывод может быть и в консоль и в окошки, предпочитаю оставлять строки в виде unicode, python сам прекрасно решает, в какой кодировке вывести строку.
До тех пор пока вы в консольной проге не перенаправите вывод в файл:

python rus.py > file
slav0nic
кстати из-за этого часто не работает ulipad и другие редакторы, с возможностью запуска скриптов и вывода stdout в своём окне…
bialix
slav0nic
кстати из-за этого часто не работает ulipad и другие редакторы, с возможностью запуска скриптов и вывода stdout в своём окне…
хотя решение у этой проблемы достаточно простое: вместо обычного print нужно делать вывод в файловый поток, оборачивающий stdout или stderr, но который имеет установленную правильную кодировку, типа как мы это делаем в bzr:


import codecs
import sys

outf = codecs.getwriter(output_encoding)(sys.stdout, errors='replace')

print >>outf, u'Русский текст'
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB