I had similar issues recently on my machine, I solved by using unicode literals + smart_text:
from __future__ import unicode_literals
from django.utils.encoding import smart_text
safeText = smart_text('this is my tetxt : %s' % someVaribleHoldingTextData)
alternatively you may need to decode data read from a file to a specific charset:
theFile = open(path, 'r')
safeData = theFile.read().decode('utf-8')
encoding is an hard topic… you have to try, and try again :P