The topic seems to have been discussed to death on SO, still I can't for the life of me manage to render a simple string with ANSI color characters. Obviously the following works fine, the site name appears in green on my terminal:
>>> print u'I love \u001b[0;32mStack Overflow\u001b[0m'
I love Stack Overflow
However:
>>> test='I love \u001b[0;32mStack Overflow\u001b[0m'
>>> test
'I love \\u001b[0;32mStack Overflow\\u001b[0m'
>>> print test
I love \u001b[0;32mStack Overflow\u001b[0m
>>> print test.encode('utf8')
I love \u001b[0;32mStack Overflow\u001b[0m
>>> print test.decode('utf8')
I love \u001b[0;32mStack Overflow\u001b[0m
>>> print unicode(test, 'utf8')
I love \u001b[0;32mStack Overflow\u001b[0m
What the hell?