Форум сайта python.su
0
Не получается правильно подсчитать количество букв в строке. Как можно их подсчитать правильно?
Офлайн
1
пальцем
Офлайн
0
bialix + 1 )))
vak покажи кусок коду
Офлайн
0
vak>>> s1 = u'Длина этого текста равна 27'
Не получается правильно подсчитать количество букв в строке. Как можно их подсчитать правильно?
Офлайн
0
Так у меня тоже получается.
>>> s1 = u'Длина этого текста равна 27'
>>> len(s1)
27
Отредактировано (Янв. 11, 2008 11:26:17)
Офлайн
0
vakтам должен метод который считает длину строки в pdf, но меня с ним были проблемы - вылетала ошибка.
Конечная задача - вывод на печать текста и подсчет символов для того чтобы текст вписывался в размер бумаги.
Печатаю через reportlab
Ничего “умнее” пока не придумал.
Офлайн
0
Может это наведёт на мысли:
text = u'Какой-то текст в перемешку с latin-ицей'
text_utf8 = text.encode('utf-8')
print ‘text (%s):\n%s\n\ntext_utf8 (%s):\n%s’ % (len(text), repr(text), len(text_utf8), repr(text_utf8))
Результат:
text (39):
u'\u041a\u0430\u043a\u043e\u0439-\u0442\u043e \u0442\u0435\u043a\u0441\u0442 \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u0448\u043a\u0443 \u0441 latin-\u0438\u0446\u0435\u0439'
text_utf8 (66):
'\xd0\x9a\xd0\xb0\xd0\xba\xd0\xbe\xd0\xb9-\xd1\x82\xd0\xbe \xd1\x82\xd0\xb5\xd0\xba\xd1\x81\xd1\x82 \xd0\xb2 \xd0\xbf\xd0\xb5\xd1\x80\xd0\xb5\xd0\xbc\xd0\xb5\xd1\x88\xd0\xba\xd1\x83 \xd1\x81 latin-\xd0\xb8\xd1\x86\xd0\xb5\xd0\xb9'
Офлайн
0
poltergeistpoltergeist, вопрос в том что vak хочет узнать длину текста в pdf-документе в точках или пикселях.
Может это наведёт на мысли:
vakvak, как понимаю ты это делаешь для переноса строк?
Печатаю через reportlab
Ничего “умнее” пока не придумал.
Отредактировано (Янв. 11, 2008 13:31:05)
Офлайн
0
Я просто думал, что vak получает текст в формате utf-8, и подсчитывая его длину получает неправильное кол-во символов. И чтобы получить точное кол-во знакомест, надо подсчитывать длину юникодного текста, для чего требуется сделать так:
text = ‘some text from PosgreSQL in utf-8’
str_len = len(text.decode('utf-8'))
И я думаю, что я правильно думаю:)
Отредактировано (Янв. 11, 2008 14:11:18)
Офлайн
0
Всем спасибо!
Путем долгих экспериментов получилось решить проблему так:
text = unicode(text, ‘utf-8’)
str_len = len(text)
Офлайн