In Python 2.4b2 and Python 2.3.4: a_grave = u'\u00e0' for x in [u'en','dans',a_grave,u'pendant','au cours de']: print "\tx = %-15s" %(x.encode('utf-8'),) + "p(x) = ..." gives the following output on two UTF-8 terminals (Mac OS X 10.3 and Linux/Gnome 2.8): x = en p(x) = ... x = dans p(x) = ... x = à p(x) = ... x = pendant p(x) = ... x = au cours de p(x) = ... where the number of spaces following the unicode character a_grave = u'\u00e0' is too small by one.