reload(sys)

Sönmez Kartal rainwatching at gmail.com
Sat Sep 1 11:51:37 EDT 2007


On 31 A ustos, 16:58, Marc 'BlackJack' Rintsch <bj_... at gmx.net> wrote:
> On Fri, 31 Aug 2007 12:53:36 +0000, Sönmez Kartal wrote:
> > On 31 A ustos, 04:24, Steven Bethard <steven.beth... at gmail.com> wrote:
> >> Snmez Kartal wrote:
> >> > I've had an encoding issue and solved it by
> >> > "sys.setdefaultencoding('utf-8')"...
>
> >> > My first try wasn't successful since setdefaultencoding is not named
> >> > when I imported sys module. After, I import sys module, I needed to
> >> > write "reload(sys)" also.
>
> >> > I wonder why we need to call "reload(sys)" to get setdefaultencoding
> >> > named?
>
> >> sys.setdefaultencoding is purposely deleted from the sys module after
> >> it's loaded because you really shouldn't be using it. The reload() call
> >> restores the deleted attribute.
>
> >> If you'd like a less brittle solution to your encoding issue, explain
> >> what the issue was, and people here can probably help you find a better
> >> solution.
>
> > I was using the XMLBuilder(xmlbuilder.py). I'm writing XML files as
> > "f.write(str(xml))". At execution of that line, it gives error with
> > description, configure your default encoding...
>
> This doesn't help us that much.  What is `f` here and what is `xml`?
>
> > This is the part of xmlbuilder.py which raises the error.
>
> >         try:
> >             if self.pretty:
> >                 # tabs are evil, so we will use two spaces
> >                 outstr = self._dom.toprettyxml("
> > ",encoding=self.encoding)
> >             else:
> >                 outstr = self._dom.toxml(encoding=self.encoding)
> >         except UnicodeDecodeError:
> >             sys.stderr.write('Decoding Error: You must configure
> > default encoding\n')
> >             sys.exit()
>
> So there is an attribute `self.encoding` on that object.  Is it set?  What
> encoding is it?  And do you put byte strings with values outside ASCII
> into your XML or unicode strings?
>
> Ciao,
>         Marc 'BlackJack' Rintsch

I should have said that 'f' is a file object and xml is a XMLBuilder
object. Sorry. :-)

self.encoding is 'utf-8' by default.

I have only ® and ™ characters in the XML file and a space character
which Emacs shows as colored '_'. I have replaced those but didn't
work!

Here is the full code of xmlbuilder.py: http://rafb.net/p/9rURi822.html

I don't wanna bother you but if you see there is something not
practical then I'll keep writing about this. :-)




More information about the Python-list mailing list