On 6 Eylül, 19:19, Steven Bethard <[EMAIL PROTECTED]> wrote:
> Sönmez Kartal wrote:
> > 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...
>
> [and later]
>
> >http://rafb.net/p/RfaF8215.html
>
> > products in the code is a list of dictionaries which are returned by
> > makeProduct function.
>
> > I'm not typing or pasting those characters into my script. So,
> > declaring an encoding didn't make it. :-( But, your code excerpt
> > runned well.
> Gabriel Genellina wrote:
> > You should ensure that arguments to makeProduct are either:
> > - unicode objects
> > - ASCII strings
>
> > If you got them from some other place, decode the strings as soon as
> > possible into unicode. Read <http://www.amk.ca/python/howto/unicode>
> > to understand what's happening
>
> To further illustrate Gabriel's point, here is some code where I read in
> some UTF8 text from a file.  If you properly decode that text from UTF8,
> you don't get any errors.  If you forget to decode that text, you'll get
> exactly the "default encoding" error you were getting before:
>
>      >>> f = open('temp.txt', 'w')
>      >>> f.write(u'® and ™'.encode('utf8'))
>      >>> f.close()
>      >>> non_decoded_text = open('temp.txt').read()
>      >>> decoded_text = non_decoded_text.decode('utf8')
>      >>> import xmlbuilder
>      >>> builder = xmlbuilder.XMLBuilder()
>      >>> builder.foo = dict(bar=non_decoded_text)
>      >>> str(builder)
>      Decoding Error: You must configure default encoding
>      >>> builder = xmlbuilder.XMLBuilder()
>      >>> builder.foo = dict(bar=decoded_text)
>      >>> str(builder)
>      '<?xml version="1.0" encoding="utf-8"?><foo><bar>\xc2\xae and
>      \xc2\x99</bar></foo>'
>
> Note that I didn't have to do anything with the default encoding. I
> simply had to decode the text file with the appropriate codec. So,
> looking at your code, I'm guessing that you need to figure out where
> you're reading in the "name", "url" and "image" values, and make sure
> you're properly decoding that text.
>
> STeVe
>
> P.S. If you can find somewhere to file a bug report for XMLBuilder, you
> really should.  The error instructing you to configure the default
> encoding is really just wrong.

Thank you Steve for your answers and Gabriel for reminding Unicode
HOWTO to me which I'm going to read tomorrow!

Happy coding

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to