Doyon, Jean-Francois wrote:
My app started throwing unicode errors, and I've tracked it down to the fact I
have accents in .metadata files.
This becomes a problem when a unicode string sneaks into the page to be
rendered, at which time StringIO.getvalue() bombs.
Normally I'd try to get rid of the unicode string, but in this case it seems
like it's coming from the i18n machinery (The result of a translation), and as
such, might not be very desirable for me to mess with it.
For example I have an FSImage with a title that in french contains an accented
When calling the tag() method on the image, I end up with a <type 'str'> with
high bit characters.
The same page will contain i18n:translate results, which are unicode.
I tried making the FSMetadata logic return a unicode string instead of a
regular string, but that didn't work (not too clear on why, the logging module
started throwing errors?).
I also tried using HTML entities such as é in there, but looks like HTML
title= or alt= doesn't render them?
Anyone have any ideas how I might get around this? I'm out of ideas :(
I guess you are using CMF 2.0. In CMF 2.0 all data used in PageTemplates
has to be unicode (or ASCII). AFAICS you have to convert the value
returned by tag(). CMFDefault utils has a 'decode' function that uses
the default_charset of the site to decode the string.
Zope-CMF maillist - Zope-CMF@lists.zope.org
See http://collector.zope.org/CMF for bug reports and feature requests