Bah en fait, ton fichier code source est en UTF-8. Ceci veux dire que tous les charactères non ASCII ( ASCII le vrai, celui avec comme numero de symbole < 128 ) sont codés sur 2 octets au moins. Quand tu fais alors for e in v: au moment de passer sur le ², tu vas en fait faire 2 iterations ( au moins ), une pour le charactère d'échapement UTF-8, l'autre pour le charactère qui va représenter ². Malheureusement, aucun de ces 2 charactères ne va passer le test de if e in liste:, seule la concaténation de ces 2 charactères le peut.
Et pour convertir une chaine de charactère en unicode, c'est très facile. Si la chaine est en utf-8, tu fait chaine.decode('utf-8'), si elle est en latin1 tu fais chaine.decode('latin1') et si elle est en vrai ASCII, il suffit de faire unicode(chaine) ou chaine.decode('ascii')
Message édité par Kristoph le 24-08-2006 à 09:59:41