Hello !
C'est normal.
Ta chaîne de caractères toto est en Unicode
(voir http://www.sebsauvage.net/comprendre/ascii/ ).
Ton terminal est en ASCII.
Python ne sait pas comment convertir les caractères Unicode en ASCII. C'est pour cela qu'il utilise \xe9 etc.
Tu peux lui donner un coup de pouce avec .encode():
>>> toto=u'fête' # toto est une chaîne Unicode
>>> toto
u'f\x88te'
>>> print toto
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "c:\python23\lib\encodings\cp437.py", line 18, in encode
return codecs.charmap_encode(input,errors,encoding_map)
UnicodeEncodeError: 'charmap' codec can't encode character u'\x88' in position : character maps to <undefined>
>>> print toto.encode('latin-1')
fête
"ê" ne fait pas partie du code ASCII ---> Python affiche \x88, ou fait une erreur quand tu fais un print.
Avec .encode('latin-1'), on demande à Python de convertir Unicode vers le code Latin-1 (ISO 8859-1 pour être précis).