inverser re.escape() pour des caractères non ASCII

inverser re.escape() pour des caractères non ASCII - Python - Programmation

Marsh Posté le 28-08-2013 à 17:43:43    

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 :
  1. # pure ASCII string : ok
  2. mystring = "a\n" # expected unescaped string : "a\n"
  3. cod = codecs.getencoder('unicode_escape')
  4. print( cod(mystring) )
  5. # non ASCII string : method #1
  6. mystring = "€\n"
  7. # equivalent to : mystring = codecs.unicode_escape_decode(mystring)
  8. cod = codecs.getdecoder('unicode_escape')
  9. print(cod(mystring))
  10. # RESULT = ('â\x82¬\n', 5) INSTEAD OF ("€\n", 2)
  11. # non ASCII string : method #2
  12. mystring = "€\n"
  13. mystring = bytes(mystring, 'utf-8').decode('unicode_escape')
  14. print(mystring)
  15. # RESULT = â\202¬ INSTEAD OF "€\n"


---------------
rule #1 : trust the python
Reply

Marsh Posté le 28-08-2013 à 17:43:43   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed