It works for me using toUtf8():
>>> s = u'éé'
>>> qs = QString(s)
>>> qs
PyQt4.QtCore.QString(u'\xe9\xe9')
>>> print qs
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
>>> print qs.toUtf8()
éé
>>>
Your internal data should be Unicode, so you should use u'éé', not just 'éé'as you pointed out in your question. Your comment even says u'éé'.
: , str() Unicode Unicode, . /bytestrings, str() Unicode Unicode /bytestring. !