Thanks, but I'm not keen on the whole site customize thing, I'd prefer not to muck with a Python setup for such a small part of the site. If Guido and Martin and the like frown upon it, why did they put that facility in there ;) ? -jim -----Original Message----- From: Dieter Maurer [mailto:dieter@handshake.de] Sent: Thursday, November 13, 2003 4:02 PM To: Jim Kutter Cc: zope@zope.org Subject: Re: [Zope] Unicode ZPT and XML woes Jim Kutter wrote at 2003-11-13 11:08 -0500:
So I'm trying to write an XML RSS feed using Page Templates.
I'm having problems where I pull metadata out of a catalog, and try to use it as the item title for the feed
-- ... <item tal:repeat="item python: here.search.news_catalog({'post_date': [here.ZopeTime()-1, here.ZopeTime()], 'post_date_usage': 'range:min:max', 'sort_on':'post_date', 'sort_order':'reverse'})"> <title tal:content="item/head"> Title Here </title> ... </item> --
I get Error Type: UnicodeError Error Value: ASCII decoding error: ordinal not in range(128)
It seems that I'm getting trapped in unicode hell, as that item/head is in ascii, and the ZPT is in unicode?
Something in your page was Unicode (therefore, ZPT tries to convert everything to Unicode; this is right) and something is non Unicode but it is non-Ascii, too. This gives you the error above. You can convert the non-Unicode non-Ascii into Unicode explicitly with the "unicode" builtin (you have to specify the correct encoding of your string). I have a different solution. However, many Python Gods (e.g. Guido and Martin) frown on it and think about ways to remove it from Python. Python has a "default encoding". By default, it is "ASCII". However, you can change it during startup (in your "sitecustomize.py") with "sys.setdefaultencoding(your_prefered_encoding)" to "your_prefered_encoding". After startup, "setdefaultencoding" is removed from "sys" (which is good). I live in a "latin-1" part of the world and therefore chose this as my default encoding. -- Dieter
participants (1)
-
Jim Kutter