Форум сайта python.su
Всем доброго времени суток.
Проблема в следующем. Имеем 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')
>>> 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() Ð ÑÑÑкий ÑекÑÑ
Отредактировано keizer08 (Июль 16, 2012 10:43:12)
Офлайн
>>> from PyQt4 import QtGui, QtCore >>> text = QtCore.QString('Русский текст') >>> print unicode(text) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\P26\lib\encodings\cp866.py", line 12, in encode return codecs.charmap_encode(input,errors,encoding_map) UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-6: character maps to <undefined> >>> print unicode(text,'cp866') Русский текст >>> text = QtCore.QString(u'Русский текст') >>> print unicode(text) Русский текст
Офлайн
>>> from PyQt4 import QtCore
>>> q=QtCore.QString(u'приведение')
>>> print unicode(q)
приведение
Отредактировано JOHN_16 (Июль 16, 2012 12:25:03)
Офлайн
о… Спасибо добрые вы люди))) но вот проблема в том что текст поставляется как в консоль винды так и в консоль Linux, ПО кроссплатформенное, но это уже не важно =) В каком направлении двигаться теперь знаю.
Офлайн