Проблема в следующем. Имеем QString экземпляр внутри со строкой в юникоде. print jочень сильно сильно ругается когда ему на печать подсовываешь эту строчку вот так:
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
Пробовал стрингать эту строчку встроеннйо функцией
srt()
Пробовал указывать
str('экземпляр Qstring c юникодом внутри').decode('utf-8')
В общем у меня что то великий тупняк и никак не въеду. Моя цель вывести строку на печать print'ом
Вот мои эксперементы в IDLE:
>>> from PyQt4 import QtGui, QtCore >>> text = QtCore.QString('Русский текст') >>> print text Traceback (most recent call last): File "<pyshell#2>", line 1, in <module> print text UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-13: ordinal not in range(128) >>> print str(text).encode('utf-8') Traceback (most recent call last): File "<pyshell#3>", line 1, in <module> print str(text).encode('utf-8') UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-13: ordinal not in range(128) >>> print str(text).decode('utf-8') Traceback (most recent call last): File "<pyshell#4>", line 1, in <module> print str(text).decode('utf-8') UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-13: ordinal not in range(128) >>> print text.toUtf8() Ð ÑÑÑкий ÑекÑÑ
Как видим у QString есть метод toUtf8 после которого print не ругается но результат меня не устраивает :D
P.S. Пришел я сюда за помощью, а не собирать плевки в лицо ибо форумы и существуют для взаимопомощи. Если нечего сказать по существу лучше воздержитесь от ответа.