Dé-zo-lé !
On dirait que tout le monde s'est donné le mot pour poser des problèmes liés à l'encodage des caractères !
J'en rajoute une couche...

Mon problème est d'afficher une url (avec des caractères compliqués) sur la console.

Après avoir parcouru tous les posts déjà présents, j'ai trouvé une astuce qui marche plutôt bien :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
import urllib
url = 'www.%C3%A9h%C3%A8.com'
print unicode( urllib.unquote_plus( url ),'UTF8')
Ça marche impec : j'ai bien "www.éhè.com" qui s'affiche.
Mais voilà, avec des caractère vraiment spéciaux, ça ne marche plus :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
import urllib
url = '__%cc%aa__'
print unicode( urllib.unquote_plus( url ),'UTF8','ignore' )
--> UnicodeEncodeError: 'charmap' codec can't encode character u'\u032a' in position 2: character maps to <undefined>

Ce code ccaa qui correspond à \u032A (COMBINING BRIDGE BELOW) fait tout planter, même en ajoutant 'ignore' en paramètre à unicode .

Que faire... je comprends bien que tous les caractères du monde ne puissent pas s'afficher sur une console, mais comment dire à Python de les ignorer si 'ignore' ne marche pas ?