Bonjour!

J'utilise pyXML pour lire un fichier XML, tout ce qu'il a de plus normal, encodé en iso-8859-1 (et c'est écrit dans l'entete du fichier).

Pourtant, quand je mets une méthode du type (c'est du SAX):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
def characters(self, ch):
  print ch
Il me jette au premier accent venu:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
Traceback (most recent call last):
  File "javascript-faq.py", line 80, in ?
    parser.parse("javascript-faq.xml")
  File "D:\Program Files\insee\atelier-dev-2\applications\py24\Lib\site-packages\_xmlplus\sax\expatreader.py", line 109, in parse
    xmlreader.IncrementalParser.parse(self, source)
  File "D:\Program Files\insee\atelier-dev-2\applications\py24\Lib\site-packages\_xmlplus\sax\xmlreader.py", line 123, in parse
    self.feed(buffer)
  File "D:\Program Files\insee\atelier-dev-2\applications\py24\Lib\site-packages\_xmlplus\sax\expatreader.py", line 216, in feed
    self._parser.Parse(data, isFinal)
  File "javascript-faq.py", line 45, in characters
    print ch
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 12: ordinal not in range(128)
Apparement, il s'attends à trouver de l'ascii, et effectivement, c'est pas très compatible avec les accents. Mais comment lui dire que ce ne va pas être de l'ascii mais de l'iso-8859-1?