On 2005-09-05, Fredrik Lundh <[EMAIL PROTECTED]> wrote: > Odd-R. wrote: > >> I use xml.dom.minidom to parse some xml, but when input >< contains some specific caracters(æ, ø and å), I get an >> UnicodeEncodeError, like this: >> >> UnicodeEncodeError: 'ascii' codec can't encode character >> u'\xe6' in position 604: ordinal not in range(128). >> >> How can I avoid this error? > > if you're getting this on the way in, something is broken (posting a short > self-contained test program will help us figure out what's wrong).
This is retrieved through a webservice and stored in a variable test <?xml version='1.0' encoding='utf-8'?> <!-- DTD for xmltest--> <!DOCTYPE testtest [ <!ELEMENT testtest ( test*)> <!ELEMENT test (#PCDATA)>]> <testtest><test>æøå</test></testtest> printing this out yields no problems, so the trouble seems to be when executing the following: doc = minidom.parseString(test) Then I get this error: File "C:\Plone\Python\lib\site-packages\_xmlplus\dom\minidom.py", line 1918, in parseString return expatbuilder.parseString(string) File "C:\Plone\Python\lib\site-packages\_xmlplus\dom\expatbuilder.py", line 940, in parseString return builder.parseString(string) File "C:\Plone\Python\lib\site-packages\_xmlplus\dom\expatbuilder.py", line 223, in parseString parser.Parse(string, True) UnicodeEncodeError: 'ascii' codec can't encode characters in position 157-159: ordinal not in range(128) In the top of the file, I have put this statement: # -*- coding: utf-8 -*- > if you're getting this on the way out, the problem is that you're trying to > print Unicode strings to an ASCII device. use the "encode" method to > convert the string to the encoding you want to use, or use codecs.open > to open an encoded stream and print via that one instead. Can you give an example of how this is done? Thanks again for all help! -- Har du et kjøleskap, har du en TV så har du alt du trenger for å leve -Jokke & Valentinerne -- http://mail.python.org/mailman/listinfo/python-list