Bonjour, je travaille avec Python3 dans un environnement (programme et éditeur) 100% UTF-8 .
J'ai testé différentes méthodes pour inverser l'effet de l'appel à re.escape() sur des caractères non ASCII. Sauf erreur de ma part, aucune ne fonctionne. Dois-je en passer par une fonction ad hoc comme celle que je vois ici (http://mentaljetsam.wordpress.com/ [...] ed-string/) ? Serait-ce une erreur propre à Python ou y a-t-il quelque chose que je ne comprends pas ? J'ouvre ce thread suite à celui que j'ai ouvert, sans grand succès, sur Stackoverflow (http://stackoverflow.com/questions [...] characters).
Merci de votre aide !
Voici mes essais :
Code :
- # pure ASCII string : ok
- mystring = "a\n" # expected unescaped string : "a\n"
- cod = codecs.getencoder('unicode_escape')
- print( cod(mystring) )
- # non ASCII string : method #1
- mystring = "€\n"
- # equivalent to : mystring = codecs.unicode_escape_decode(mystring)
- cod = codecs.getdecoder('unicode_escape')
- print(cod(mystring))
- # RESULT = ('â\x82¬\n', 5) INSTEAD OF ("€\n", 2)
- # non ASCII string : method #2
- mystring = "€\n"
- mystring = bytes(mystring, 'utf-8').decode('unicode_escape')
- print(mystring)
- # RESULT = â\202¬ INSTEAD OF "€\n"
|
---------------
rule #1 : trust the python